Pull to refresh

Comments 16

Может проще, как вариант?
$config = new Zend_Config_Ini('application/config/config.ini', $_SERVER['HTTP_HOST']);


[real-site.ru]
#настройки реального хоста
[ввв.real-site.ru : real-site.ru]
[test : real-site.ru]
#перезаписываем настройки для тестового хоста


ini недостаточно джедайски, конечно, но зато ни строчки extend-кода.
А почему недостаточно джедайски?
Сам делаю именно так, и вполне доволен жизнью.
тут уже кому как больше нравится
Сам так юзаю - супер удобно, единственное - что будет если в ini нет соответствующего блока $_SERVER['HTTP_HOST']?
Увы, Zend_Config_Exception будет. Однако это тоже супер, в случае динамических имен хостов (хоть Хабр взять, если обрабатывать на этом уровне), ловим исключение и обрабатываем.
Неплохая штука, спасибо, возможно, когда-нибудь пригодится.
Правда, комментарии на русском (для публичного фреймворка), имхо, моветон.
И почему не опубликовали в блоге ZF?
кармы не хватало
комментарии на русском, потому что в первую очередь для себя пишу
Ясно. Сейчас поработаем с вашей кармой)
А чем вас вдруг не устроили конфиги завязанные на язык программирования?
Например,
<?php
$database = array();
$database['host'] = 'localhost';
$database['user'] = 'user';
, или

<?php
$database = new Object();
$database->host = 'localhost';
$database->user = 'user';
это опять же, дело вкуса.
у xml плюс, что его можно легко редактировать программно
Там как-нибудь кэшируются результаты?
Просто как представлю, что при любом обращении к скрипту каждый раз xml парсится и сразу желание пропадает использовать такую гибкость :)
Автоматически нет, но напсать код, используя Zend_Cache не сложно. Я сразу же добавил кеширование, как перешел на XML конфиги
как по мне проще программно работать с массивом, чем с xml, да и к тому же конструкции типа
$config['project_folder'] = dirname(__FILE__); в xml делаются очень не явно, да и переопределение параметров конфигурации гораздо проще при использовании массивов
[general]
db.host = 'localhost';
db.adapter = 'PDO_MYSQL';
db.dbname = 'production'; # Production db
db.username = 'root';
db.password = 'root';

[general: dev]
db.dbname = 'development'; # Devel db

$config = new Zend_Config_Ini('application/config/config.ini', 'dev');
// general загрузится всегда. настройки из dev перегрузят парные элементы.
Вот это - зачёт. Этой фишки не знал, теперь буду пользовать. Спасибо)
UFO just landed and posted this here
Sign up to leave a comment.

Articles