Возможный дубликат:
Как можно прочитать application.ini на контроллере с использованием среды zend
application.ini - это файл конфигурации в ZF. У меня есть еще несколько настроек, кроме тех по умолчанию, о которых пишет руководство ZF. Но как я могу получить эти параметры от него, например, от моих контроллеров действий? И где лучше хранить эту конфигурацию во время сеанса?
Класс Bootstrap_Abstract имеет метод getOptions(), который возвращает простой php-массив файла read application.ini:
$app = new Zend_Application(APPLICATION_ENV, '/application.ini');
$config = $app->bootstrap()->getOptions(); // $config is a php array of application.ini
И я бы хотел, чтобы элемент выглядел так стильно:
$param = $config[one][two]; // vs.
$param = $config->one->two; // like this
ZF имеет класс Zend_Config_Ini, который читает .ini и возвращает именно объект ArrayObject. Но я бы хотел больше не читать application.ini с Zend_Config_Ini еще раз после того, как Zend_Application все равно уже прочитал его. Но классы Bootstrap или Zend_Application не предоставляют некоторого автоматического создания ArrayObject из application.ini.
И второй, где я могу сохранить этот $config, тогда? В Zend_Registry?
Zend_Registry::set('config', $config);
И затем в моем контроллере действия я его получаю:
$config = Zend_Registry::get('config'); // I retrieve config
$param = $config->one->two; // I retrieve parameter from it and use it
Но это выглядит немного неэффективным: у меня есть одна копия application.ini в Bootstrap в виде обычного php-массива и одна копия того же application.ini, но в виде ArrayObject в Zend_Registry тоже, И нужно сделать два шага, чтобы получить параметр из моей конфигурации. Как я могу решить эту проблему более эффективно?