Я просто играл с моей IDE и заметил, что когда я использую опцию «Fix code» в классе, он добавляет несколько строк в верхней части следующего типа
use Someclass;
use \Ano\therClass;
use Iface;
...
Мне было интересно, какова цель этого, так как классы будут загружаться по требованию, есть ли необходимость явно объявить, какие классы будут использоваться?
Когда вы создаете класс, назовите его пакет с ключевым словом namespace
<?php
/**
* CacheException.php
*/
namespace Doctrine\ORM\Cache;
class CacheException extends Exception {}
В другом месте use
может импортировать только один класс из пакета:
use Doctrine\ORM\Cache\CacheException;
throw new CacheException('Failed to cache');
Также use
импортирует общий пакет со всеми его классами:
use Doctrine\ORM\Cache;
throw new CacheException('Failed to cache');
Больше на http://php.net/manual/en/language.namespaces.importing.php
С помощью use
Вы можете использовать разные объекты, функции и т. д. с одним и тем же именем благодаря пространствам имен. Когда ты пишешь use
в своем коде вы говорите PHP импортировать элементы пространства имен и присваивать ему псевдоним.
Прочитайте больше: http://php.net/manual/en/language.namespaces.importing.php