2012-02-17 3 views
2

Я использую шаблон дизайна по умолчанию Zend_Application, который автоматически загружает файл ini в файл ini в загрузочном буфере приложения, и мне нужно переменные ini-файла для многих моделей и контроллеров.Доступ к getOptions() из Zend_Application_Bootstrap_Bootstrap

Прямо сейчас, я решить ее с помощью параметров объекта конфигурации в качестве ключа в Zend_Registry:

protected function _initConfig() 
{ 
    $config = new Zend_Config($this->getOptions()); 
    Zend_Registry::set('config', $config); 
} 

Вообще, я не люблю использовать Zend_Registry, так как он не предлагает код автоматического завершения в моя IDE, и трудно отслеживать, что у меня есть в пространстве имен реестра.

Есть ли другой способ доступа к конфигурации Zend_Application?

ответ

4

В контроллере вы должны быть в состоянии сделать:

$this->getInvokeArg('bootstrap')->getOptions(); 

для доступа к конфигурации. Для моделей вы действительно должны передавать нужные вам параметры. В противном случае ваш единственный выбор - это реестр.

+0

спасибо! прекрасно работает – aporat

0

Вы всегда инициализирует его по мере необходимости себя

$options = new Zend_Config_Ini('/path/to/config.ini', 
           'config'); 

Wich довольно много, что бутстраповская делает для вас. Тогда у вас будет автозаполнение на $ options. Но вам придется инициализировать его каждый раз, когда вам это нужно. Я думаю, что модификация вашего кода в соответствии с автозаполнением - это не самая большая идея. Но это личное.

Если я не ошибаюсь с Zend Studio 8/9 (возможно, 7), у вас есть автозаполнение даже для объектов, возвращаемых Zend_Registry::get().

Смежные вопросы