Возможный дубликат:
Как можно прочитать 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
тоже, И нужно сделать два шага, чтобы получить параметр из моей конфигурации. Как я могу решить эту проблему более эффективно?