Это код, который я имею в Bootstrap:Zend: Доступ к модели из Bootstrap вызывает исключение
public function _initRegistry()
{
$systemConfigModel = new Application_Model_DbTable_SystemConfig();
Zend_Registry::set('config', $systemConfigModel->getSystemConfig());
}
И это исключение я получаю:
(!) Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for Application_Model_DbTable_SystemConfig' in /usr/share/php5/Zend/Db/Table/Abstract.php on line 755
(!) Zend_Db_Table_Exception: No adapter found for Application_Model_DbTable_SystemConfig in /usr/share/php5/Zend/Db/Table/Abstract.php on line 755
Это прекрасно работает, если я позвоню это в моем BaseController
. Это похоже на то, что адаптер PDO, который я указываю в application.ini
, не был инициализирован в то время, когда выполняется Bootstrap (странно?). Что делать, чтобы код работал в Bootstrap? Нужно ли создавать и устанавливать адаптер с Zend_Db_Table :: setDefaultAdapter() ;?
Я спрашиваю, потому что, если код отсутствует в Bootstrap, его необходимо дублировать в двух разных местах, и это также похоже на то, что оно принадлежит Bootstrap.
+1! Дополнительная информация здесь - [Zend Application - Theory of Operation - Отслеживание зависимостей] (http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of- operation.bootstrap.dependency-tracking) – Phil
Спасибо, это работает. – clime