dmitrydeco
@dmitrydeco

Какова важность использования оператора use при подгрузке пространства имён?

Привет.
Я недавно стал изучать пространства имён (до этого не было необходимости, пока не принял решение перейти с Yii1 на Yii2).

Прочитав информацию, а так же попробовав всё на живых примерах, у меня возникли вопросы.
Имеем обычную структуру:
file1.php
<?php
namespace Test\File1;
class ClassName
{
	public function test()
	{
		return "File1";
	}
}

file2.php
<?php
namespace Test\File2;
class ClassName
{
	public function test()
	{
		return "File2";
	}
}

index.php
<?php
require_once 'file1.php';
require_once 'file2.php';

# use \Test\File2; <---

echo (new \Test\File2\ClassName)->test2();


Если не использовать use, то всё и так работает (знаю, что оператор может служить для создания псевдонима: use \Test\File2 as SomeClass). Попробовал использовать этот же трюк в Yii2 - сыпятся ошибки по поводу того, что нет отключенного мной класса.
Два вопроса:
1) так ли важен оператор use в моём случае?
2) всё зависит от автолоадера? Имею ввиду его настройку, чтобы даже при принудительных инклюдах пространство само по себе не подключалось
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Use - синтаксический сахар, чтобы можно было писать new ClassName вместо new \Test\File2\ClassName.
Существует только на этапе компиляции конкретного файла, никак не влияет на autoload и прочие include.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы