Php 在Zend Framework 2中访问全局配置

Php 在Zend Framework 2中访问全局配置,php,zend-framework2,service-locator,Php,Zend Framework2,Service Locator,我想访问我个人库中的全局配置(config/{,*.}{global,local}.php),这些配置位于供应商目录中。 但是,尽管我在网上搜索,我没有成功地做到这一点 我知道如何访问模块的配置文件: \MyModule\Module::getConfig() 我知道如何从控制器访问全局配置: $this->getServiceLocator()->get('config'); 但是如何从供应商目录中的文件访问这些文件呢? 我的库没有扩展任何内容,这可能是问题的根源吗? 我可以使

我想访问我个人库中的全局配置(
config/{,*.}{global,local}.php
),这些配置位于
供应商
目录中。 但是,尽管我在网上搜索,我没有成功地做到这一点

我知道如何访问模块的配置文件:

\MyModule\Module::getConfig()
我知道如何从控制器访问全局配置:

$this->getServiceLocator()->get('config');
但是如何从供应商目录中的文件访问这些文件呢? 我的库没有扩展任何内容,这可能是问题的根源吗? 我可以使用静态方法访问这些吗


谢谢。

您可以通过serviceManager获得。 在控制器中:

$config = $this->getServiceLocator()->get('Config');
否则,同样的方式,只需要服务管理器,对于Module.php中的eaxmple:

  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']){
                ..................

这是一个简单的方法。不仅在模块中,而且在任何地方

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

echo $config->myconfig;

在public/index.php中定义
APPLICATION\u PATH
,您不能通过Zend\\namespace访问配置工厂中的读取器吗?但是,难道供应商不应该从Zend模式中分离出来吗?您不能添加/覆盖模块配置吗?您好,谢谢您的评论。事实上,您是对的,我不应该尝试在我的供应商目录中使用zend配置文件。