Я согласен, что в ZF это сложнее, чем должно быть, надеюсь, это область, которая будет улучшена в будущих версиях.
Между тем, довольно легко объединить два конфигурационных файла с Zend_Configи это то, что вы можете использовать в своих интересах.Если вы откроете public/index.php
, вы увидите раздел внизу, где он создает экземпляр Zend_Application.По умолчанию вторым параметром является полный путь к вашему файлу конфигурации, но вы можете вместо этого передать существующий объект Zend_Config.Таким образом, вы создаете два объекта конфигурации: application.ini и environment.ini (называйте это как хотите), объединяете их вместе и затем передаете в Zend_Application:
$config = new Zend_Config_Ini(
APPLICATION_PATH.'/configs/application.ini',
APPLICATION_ENV,
array('allowModifications' => true)
);
$environment = new Zend_Config_Ini(
APPLICATION_PATH.'/configs/environment.ini',
APPLICATION_ENV
);
$config->merge($environment);
$application = new Zend_Application(APPLICATION_ENV, $config);
$application->bootstrap()
->run();
При таком подходе вы сохраняете всестандартные вещи в application.ini и перенесите свою базу данных в environment.ini.Затем вы сохраняете application.ini в системе управления версиями, добавляете environment.ini в gitignore / svn: ignore и создаете фиктивный файл environment.ini.dist, который ваши другие разработчики могут использовать для настройки своих локальных проектов.
Примечание:Если вы закомментировали вызовы require_once в файлах библиотеки ZF по соображениям производительности, вам может потребоваться использование некоторых классов Zend_Config в public / index.php, чтобы это работало.Это должно быть очевидно из ошибок.