Существует множество возможных решений. Наиболее распространенное, при использовании Zend Application, чтобы зарегистрировать пространство имен в application.ini
, добавив:
autoloaderNamespaces[] = "Example_"
Других решений:
- Добавить свои директории для
include_path
с помощью set_include_path()
(специального раствора)
- Следуйте соглашениям об именах PEAR (чтобы разрешить пути было возможно)
Настроить автозагрузчик в Bootstrap.php
:
protected function _initAutoloader()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace("Example"); // or Example_
}
В конце концов, установить модуль или resource autoloader, например.
$resourceLoader->addResourceTypes(array(
'acl' => array(
'path' => 'acls/',
'namespace' => 'Acl',
),
'example' => array(
'path' => 'examples/',
'namespace' => 'Example',
),
));
Спасибо, бразильщик, это сработало! «$ Autoloader-> registerNamespace (..» dit it! – curro
Привет, довольно старое сообщение, чтобы спросить об этом, но все же вы можете мне помочь? »Zend (1.12)« У меня есть каталог «Example» и класс 'Example_Test 'непосредственно под' Example' .Я зарегистрировал пространство имен 'Example', а затем, когда я обращаюсь к классу' Example_Test' в моем коде 'php', я могу сделать это без каких-либо проблем. Но когда я смотрю на метод' getClassPath() ' внутри 'Zend_Loader_Autoloader_Resource' он не возвращает допустимый путь (coz некоторых условий), поэтому это означает, что файл не загружается методом' autoload() '. Тогда как он действительно загружается? –