доступ к getOptions () из Zend_Application_Bootstrap_Bootstrap - PullRequest
2 голосов
/ 17 февраля 2012

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 17 февраля 2012

В контроллере вы должны иметь возможность:

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

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

0 голосов
/ 17 февраля 2012

Вы всегда можете инициализировать его самостоятельно при помощи

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

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

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

...