PHP

Локальные файлы конфигурации и Zend_Application

Недавно одной моей знакомой потребовалось 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'
 	        )
 	    )
 	);

Вот и всё.
Добавлено: 23 Августа 2013 05:29:42 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...