【问题标题】:Access config global in Zend Framework 2Zend Framework 2 中的全局访问配置
【发布时间】:2013-11-16 03:16:34
【问题描述】:

我想访问位于我的个人库(vendor 目录中)中的全局配置 (config/{,*.}{global,local}.php)。 但是,尽管我在网络上进行了搜索,但我并没有成功实现这一目标。

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

\MyModule\Module::getConfig()

我知道如何从控制器访问全局配置:

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

但是如何从供应商目录中的文件访问这些? 我的库没有扩展任何东西,这可能是问题的根源? 我可以使用静态方法来访问这些吗?

谢谢。

【问题讨论】:

  • 您不能通过 Zend\\ 命名空间访问 Config 工厂中的阅读器吗?但是供应商不应该与 Zend 模式分开吗?你不能只添加/覆盖模块配置吗?
  • 您好,感谢您的评论。确实,你是对的,我不应该尝试在我的供应商目录中使用 zend 配置文件。

标签: php zend-framework2 service-locator


【解决方案1】:

您可以通过 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']){
                ..................

【讨论】:

    【解决方案2】:

    简单的方法来做到这一点。不仅在模块中,而且在任何地方。

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

    在 public/index.php 中定义 APPLICATION_PATH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      相关资源
      最近更新 更多