0

我有一些配置文件,它们不需要在任何地方使用,所以我不希望它自动加载,你能告诉我如何在控制器中加载配置文件并且可以在 serviceLocator 中获取,不要告诉我使用zend\config\config,谢谢。</p>

4

1 回答 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 回答