Хитрости ZF1.8

В комментариях к учебнику в блоге Роба Алена (кстати, он его уже обновил до последней текущей версии 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();
   }
}

В этом случае объект конфига будет доступен в любом месте приложения.


  1. Видимо имеется в виду каноническое использование ZF, т.е. через Zend_Application и стандартный bootstraping. 

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

1 звезда2 звезд3 звезд4 звезд5 звезд (5 голосов, средний: 4.60 из 5)
Loading ... Loading ...

Метки: , , , , ,



Один комментарий на “Хитрости ZF1.8”

  1. Лобач Олег пишет:

    Надеюсь все уже в курсе нового автозагрузчика и как перейти со старого?

Оставить комментарий