Я использую IDE PhpStorm.
Я добавляю включение в файл PHP:
include_once 'lib\Zend\Form\Element';
И я ожидаю, что смогу использовать его как:
new Element();
Но вместо этого PhpStorm позволит мне использовать его только как:
new \Zend\Form\Element();
Как я могу использовать его без префикса пути?
просто включение чего-то в PHP не означает, что вы можете пропустить префикс пространства имен.
Включение только делает код доступным в вашем текущем скрипте, но вы все равно должны обращаться к классу по его пространству имен.
$var = new \Zend\Form\Element();
Это правильный способ решения Element
конструктор в пространстве имен Zend\Form
, Если вы не хотите писать \ Zend \ Form \ каждый раз, вы можете просто использовать:
use Zend\Form\Element;
$var = new Element();
Вы можете узнать больше о пространствах имен и псевдонимах здесь: http://php.net/manual/en/language.namespaces.importing.php
Если вы до сих пор не поняли это:
Включение аналогично установке карты в вашей системе навигации GPS. Использование пространства имен похоже на определение почтового индекса. Конструктор подобен сообщению улицы и номера дома вашей навигационной системе GPS.
По-видимому, это трудная задача — использовать любую часть Zend без автозагрузчика или более 10 строк конфигурации. Сложно то, что вы должны отредактировать исходный код Zend, чтобы включить в него необходимые файлы, которые являются беспорядком, а не будущим и плохим взломом.
Импорт и пространство имен только в моем файле использования не решают проблему.
Если у вас возникла та же проблема, посмотрите на ‘composer’ и автозагрузку Zend.