В комментариях к учебнику в блоге Роба Алена (кстати, он его уже обновил до последней текущей версии ZF — 1.8) задают вопрос:
Как в новой версии фреймворка применять конфигурационный файл?
Раньше вопрошающий устанавливал переменную в своем конфигурационном файле:
cms.max.feeds = 10А в загрузочном файле писал следующее:
$configuration = new Zend_Config_Ini( APPLICATION_PATH . '/config/app.ini', APPLICATION_ENVIRONMENT ); $registry = Zend_Registry::getInstance(); $registry->configuration = $configuration;Соответственно в контроллере получал значение следующим образом:
$this->_nMaxFeeds = INTVAL(Zend_Registry::getInstance() ->configuration ->cms ->max ->feeds);
Комментатор жалуется, что теперь он не знает как получить подобную функциональность в ZF1.81
Роб ответил:
В контроллере можно сделать так:$bootstrap = $this->getInvokeArg('bootstrap'); $configArray = $bootstrap->getOptions();А если нужен экземпляр объекта _Zend_Config_, то надо добавить строчку:
$config = new Zend_Config($configArray);
Такая вот маленькая хитрость, которая наверняка может сохранить массу времени при переходе на новый релиз.
Кстати1: из этой заметки наверняка понятно, что вышел новый релиз ZF, но если кто еще не знает рекомендую ознакомиться с переводом анонса релиза ZF1.8 — Вышел Zend Framework 1.8.0
Кстати2: Рекомендую ознакомиться с учебником Роба, чтобы иметь представление о применении консоли ZF, если кто еще не пробовал её в работе.
Upd: Там же в комментариях Роб предложил универсальное решение в «старом» стиле:
class Bootstrap extends Zend_Application_Bootstrap_Base
{
public function run()
{
Zend_Registry::set('config',
new Zend_Config($this->getOptions()));
parent::run();
}
}
В этом случае объект конфига будет доступен в любом месте приложения.
-
Видимо имеется в виду каноническое использование ZF, т.е. через Zend_Application и стандартный bootstraping. ↩
Метки: config, php, Rob Allen, zend framework, ZF1.8, советы



(5 голосов, средний: 4.60 из 5)
Надеюсь все уже в курсе нового автозагрузчика и как перейти со старого?