我有一些配置文件,它们不需要在任何地方使用,所以我不希望它自动加载,你能告诉我如何在控制器中加载配置文件并且可以在 serviceLocator 中获取,不要告诉我使用zend\config\config,谢谢。</p>
问问题
119 次
1 回答
1
首先,不建议先问一个问题,然后直接说你不想让别人告诉你关于 XY 的事情。如果 XY 是唯一的方法呢?
你总是可以做类似的事情
$onlyNowConfig = require_once('./config/onlyNowConfig.php');
PHP 的当前工作目录是应用程序的根目录,因为它是public/index.php
通过chdir()
函数在您的设置中设置的。
除此之外,将配置包含在您的module.config.php
. 将ModuleManager
检查getConfig()
您的类中是否存在该函数Module
。如果它存在,则将加载配置。通常每个模块都有一个将被加载的配置。将 100-200 条配置行外包到单独的文件中并没有真正的速度(劣势)优势。通过仅将其包含在您需要的那几个操作中,您所做的额外 I/O 实际上会比合并配置所需的时间更长(可能像总共 1ms 与 2-3ms I/O) .
我建议只将它包含在您的文件中module.config.php
,并且您可以通过 到处使用它ServiceLocator
,否则只需包含/需要您需要的一个配置文件,无论您身在何处。include/require 参数永远不会改变,因为 PHP 的工作目录不会改变,无论你在什么文件中(只要你不通过 chdir() 重新设置它 - 强烈不推荐)。
于 2013-09-21T14:03:01.500 回答