【问题标题】:how to retrieve values of ModuleName.global.php config files in autoload directory in Zend 2?如何在 Zend 2 的自动加载目录中检索 ModuleName.global.php 配置文件的值?
【发布时间】:2025-12-11 13:40:01
【问题描述】:

我一直在寻找有关此问题的信息,但我能找到的唯一答案是查看其他模块如何处理此问题。到目前为止,我已经看到了这个:

在 Module.php 中使用 CdliTwoStageSignup

   'factories' => array(
                    .
                    .
            'cdlitwostagesignup_module_options' => function($sm) {
                $config = $sm->get('Configuration');
                return new Options\ModuleOptions($config['cdli-twostagesignup']);
            },
                    .
     }

在 Module.php 中使用 ZfcUser

        'factories' => array(

            'zfcuser_module_options' => function ($sm) {
                $config = $sm->get('Config');
                return new Options\ModuleOptions(isset($config['zfcuser']) ? $config['zfcuser'] : array());
            },

基于 Zend 2 文档,ModuleManager 合并了每个模块的所有 module.config.php,并在服务管理器中设置。另外,.config/autoload 目录下的配置文件可以覆盖模块配置文件。

要访问配置,这两个模块似乎使用了关键字:“Config”和“Configuration”。

  • 这些总是与服务管理器一起用于访问配置文件的关键字吗?
  • 二选一有什么区别吗?

感谢您提供的任何答案。

【问题讨论】:

    标签: php module zend-framework2 servicemanager


    【解决方案1】:

    使用的密钥应该是config。在内部,afaik、所有键、别名等将从 CamelCase 转换为破折号分隔小写。所以就配置而言,Config 等于 config

    现在当涉及到configurationconfig 时,我假设configuration 可以作为config 的别名使用。在某一时刻,我认为 beta 4 或 beta 5 他们已经决定configuration 的所有出现将被config 的众所周知的缩写形式所取代。如果有任何 configuration 的出现不能作为 config 的后备,所有社区都会感谢您在 github 上打开一个问题来修复它。

    【讨论】:

    • 太棒了!我将对此进行试验,所以我一定会在 github 上发布它。谢谢!