Я перенесу некоторый код проекта в ZF-Boilerplate и столкнулся с некоторым странным поведением с автозагрузчиком.
У меня есть эти строки в application.ini
autoloadernamespaces[] = "App_"
autoloadernamespaces[] = "Boilerplate_"
;autoloaderNamespaces[] = "DCH_"
autoloadernamespaces[] = "Elastica_"
autoloadernamespaces[] = "EasyBib_"
обратите внимание, что;autoloaderNamespaces [] = "DCH_" закомментирован.
Позже, в моей начальной загрузке, у меня есть следующая строка в качестве теста:
$test=new Elastica_Facet_Range('testing');
Это работает нормально, но если я раскомментируюранее закомментированная строка, я получаю эту ошибку:
Fatal error: Class 'Elastica_Facet_Range' not found in /vagrant/www/myswap/application/Bootstrap.php on line 43
Это сводит меня с ума, потому что означает, что я не могу заставить мои пространства имен работать.пространство имен защищенной переменной содержит: Zend , ZendX_, App_, Boilerplate_, Elastica_ и EasyBib_
со строкой без комментариев пространство имен содержит (также, если я перемещаю строку DCH в конец списка): Zend_, ZendX и DCH_
Если переместить строку DCH_ в начало списка, пространства имен содержат: Zend , ZendX_, App_, Boilerplate_, Elastica_ и EasyBib_
Я добавил следующее в загрузчик, чтобы заставить его работать, но это хак, и я не доволен этим:
$autoloader = \Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('DCH_');
Есть идеи?