Недавно одной моей знакомой потребовалось 2 конфигурационных файла. Один для общего использования, а другой для локального.
Самый простой путь решения данной проблемы, так это редактирование файла index.php. Вот код:
require_once 'Zend/Application.php';
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV,
array('allowModifications'=>true));
$localConfig = new Zend_Config_Ini(APPLICATION_PATH . '/configs/local.ini', APPLICATION_ENV);
$config->merge($localConfig);
$config->setReadOnly();
// Создать приложение,bootstrap и запуститься
$application = new Zend_Application(
APPLICATION_ENV,
$config
);
$application->bootstrap()
->run();
Как вы можете заметить, мы создали несколько объектов Zend_Config. Один для application.ini, другой для local.ini Так же в обоих случаях мы используем APPLICATION_ENV. Это означает, что структура local.ini должна содержать такие же секции ("master") как и application.ini.
Для application.ini, мы выставили опцию "allowModifications' для того, чтобы в последствии мы могли воспользоваться методом merge(), чтобы перезаписать файл $config новыми данными из $localConfig.
После того, как мы объединим настройки, воспользуемся методом setReadOnly(), чтобы убедиться в том, что файлы не будут редактироваться в дальнейшем.
После этого, при создании Zend_Application, мы предаём $config.
Второй способ намного проще первого:
$application = new Zend_Application(
APPLICATION_ENV,
array(
'config' => array(
APPLICATION_PATH . '/configs/application.ini',
APPLICATION_PATH . '/configs/local.ini'
)
)
);
Вот и всё.