как получить доступ к данным конфигурации из действия контроллера?

#zend-framework

#zend-framework

Вопрос:

Я поместил это в свой файл application.ini:

 contact.email.address = "my.mail@bla.org"
contact.email.name = "Test Name"
  

Затем в моем действии index controller я выполнил:

 $configOptions = $this->getInvokeArg('bootstrap')->getOptions();
$contactAddress = $configOptions->contact.email.address;
$this->view->contact = $contactAddress;
  

На мой взгляд, у меня есть:

var_dump($this->contact); но я получаю NULL.

Чего я не понимаю?

Ответ №1:

В вашем контроллере, я думаю, вы хотите:

 $configOptions = $this->getInvokeArg('bootstrap')->getOptions();
$contactAddress = $configOptions['contact']['email']['address'];
$this->view->contact = $contactAddress;
  

Комментарии:

1. Или: $configOptions = new Zend_Config($this->getInvokeArg('bootstrap')->getOptions()); и затем: $configOptions->contact->email->address; — мои плохие синтаксические ошибки … :((

2. Хорошо, я обычно создаю этот Zend_Config экземпляр во время Bootstrap и сохраняю его где-нибудь, чтобы я мог получить к нему доступ позже, используя более чистый синтаксис, который вы определяете здесь.

3. Да, я обычно сохраняю экземпляр Zend_Config, используя Zend_Registry

Ответ №2:

Вы можете использовать:

 $configOptions = new Zend_Config($this->getInvokeArg('bootstrap')->getOptions());
$contactAddress = $configOptions->contact.email.address;
$this->view->contact = $contactAddress;