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) всё зависит от автолоадера? Имею ввиду его настройку, чтобы даже при принудительных инклюдах пространство само по себе не подключалось
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Use - синтаксический сахар, чтобы можно было писать new ClassName вместо new \Test\File2\ClassName.
Существует только на этапе компиляции конкретного файла, никак не влияет на autoload и прочие include.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
IMAGINWEB Москва
от 55 000 до 85 000 руб.
Владис Владимир
от 100 000 до 150 000 руб.
Glamy Санкт-Петербург
от 120 000 до 180 000 руб.
27 июн. 2019, в 01:26
50000 руб./за проект
27 июн. 2019, в 00:27
250000 руб./за проект