Доступ к глобальной конфигурации в Zend Framework 2

Я хотел бы получить доступ к моим глобальным конфигам (config/{,*.}{global,local}.php), расположенным в моих личных библиотеках (в каталоге vendor). Но, несмотря на мои поиски в сети, мне этого не удалось добиться.

Я знаю, как получить доступ к файлу конфигурации модуля:

\MyModule\Module::getConfig()

Я знаю, как получить доступ к глобальным конфигурациям с контроллера:

$this->getServiceLocator()->get('config');

Но как получить к ним доступ из файла внутри каталога поставщика? Мои библиотеки ничего не расширяют, может в этом корень проблемы? Могу ли я использовать статический метод для доступа к ним?

Спасибо.


person Aurelien Maigret    schedule 05.11.2013    source источник
comment
Вы не можете получить доступ к считывателю в фабрике Config через пространство имен Zend\\? Но разве поставщик не должен быть отделен от шаблона Zend? Разве вы не можете просто добавить/переписать конфигурацию модулей?   -  person cptnk    schedule 05.11.2013
comment
Здравствуйте, спасибо за ваш комментарий. Действительно, вы правы, я не должен пытаться использовать файлы конфигурации zend в своем каталоге поставщика.   -  person Aurelien Maigret    schedule 05.11.2013


Ответы (2)


Вы можете получить его через serviceManager. В контроллере:

$config = $this->getServiceLocator()->get('Config');

В противном случае так же, просто вам нужен диспетчер служб, например, в Module.php:

  public function getConfig()
  {
    return include __DIR__ . '/config/module.config.php';
  }

  public function getServiceConfig()
  {
    return array(
        'factories' => array(
            'mail.transport' =>  function($sm) {
                $config = $sm->get('Config');

                 switch($config['mail']['transport']['type']){
                ..................
person Zdenek Machek    schedule 05.11.2013

простой способ сделать это. не только в модуле, но и где угодно.

$config = new \Zend\Config\Config( include APPLICATION_PATH.'/config/autoload/global.php' ); 

echo $config->myconfig;

определить APPLICATION_PATH в public/index.php

person Saurabh Chandra Patel    schedule 23.07.2015