Хорошо, вы используете автозагрузчик модуля в своей начальной загрузке. Он предназначен для использования в начальной загрузке модулей, так как он ищет только одно дерево каталогов (обычно это определенный каталог в application / modules), а не использует путь включения. Его можно использовать в основном загрузчике в качестве автозагрузчика для модуля по умолчанию, поэтому ваш класс работал, когда вы помещали его в приложение / модели.
Я думаю, вы хотите перейти на использование стандартного автозагрузчика.
Я предполагаю, что в вашем классе начальной загрузки у вас есть что-то вроде этого:
protected function _initAutoloader()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
измените это на:
protected function _initAutoloader()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
return $autoloader;
}
это устанавливает автозагрузчик (который также по умолчанию настроит автозагрузку для классов Zend Framework) и затем говорит ему использовать этот автозагрузчик для любого пространства имен, не совпадающего с другим (поскольку у вашего класса нет пространства имен). При таком подходе вы можете удалить любой класс, используя соглашения об именах PEAR, в каталог библиотеки и использовать его в своем коде.
В качестве альтернативы вы можете сделать:
protected function _initAutoloader()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Model');
return $autoloader;
}
, который устанавливает автозагрузчик, а затем говорит ему использовать этот автозагрузчик для пространства имен Model, которое будет соответствовать вашему классу Model_Login.