Я использую следующую реализацию модулей в Zend.Это позволяет вам использовать «специфичную для модуля» конфигурацию.
application/config/config.ini
-----------------------------
[production]
resources.modules[] =
Делая это, вы сообщаете Zend_Application, что вы хотите использовать плагин Modules Bootstrap Resource.Плагин Modules загрузит отдельный класс начальной загрузки для каждого из ваших модулей, исключая модуль по умолчанию.Поэтому вам нужно создать новый класс начальной загрузки для вашего второго модуля.
application/modules/news/Bootstrap.php
-----------------------------
class News_Bootstrap extends Zend_Application_Module_Bootstrap {
//---------------------------------------
// Automatically load our resources
//
// NOTE: You don't have to add this, its
// just and example to show that you
// can customize the bootstrap
// process just for this module.
public function _initModuleResourceAutoloader(){
$this->getResourceLoader()->addResourceTypes(array(
'modelResource' => array(
'path' => 'models/resources',
'namespace' => 'Resource'
)
));
}
}
Этот класс "News_Bootstrap" теперь будет загружаться и выполняться во время процесса начальной загрузки.
Соглашение об именах дляэтот файл важен, так как плагин Modules Resource должен уметь находить класс.Обратите внимание, что необходимо назвать файл Bootstrap.php.
Наконец, вы заметите, что вы подклассифицируете Zend_Application_Module_Bootstrap, а не Zend_Application_Bootstrap_Bootstrap, как вы делаете это в основной начальной загрузке.
Теперь ваша конфигурация конкретного модуля должна работать:
[production]
news.resources.db.adapter = "pdo_mysql"
news.resources.db.params.host = "localhost"
news.resources.db.params.username = "webuser"
news.resources.db.params.password = "XXXXXXX"
news.resources.db.params.dbname = "news"