【发布时间】:2015-05-04 17:50:51
【问题描述】:
我有一个遗留代码项目,我几乎成功地将其转换为使用自动加载器,而不是大量的 include 和 require 语句。
我唯一剩下的问题是一个配置文件,它设置了一些全局配置内容。就像现在一样,它只是一个直接的 PHP 加载应用程序所需的变量。
我的想法是将其转换为具有“全局”数据的类常量的类。进行类常量调用将触发配置类的自动加载,并将所有内容置于自动加载器的控制之下。
我的问题是,这是否是解决此问题的最佳方法以及其他人是否做过类似的事情?
所以在我的应用程序中而不是调用这样的东西来访问配置变量。
$GLOBALS['conf']['thingy'];
会变成这样。
Config::THINGY
things 是一个类 const。
class Config {
const THINGY = 'yes, this is it';
}
这种方法还摆脱了全局数据引用,我认为这总是一件好事。
【问题讨论】:
-
我喜欢
Config::THINGY的语法。见:stackoverflow.com/questions/3724584/… -
我通常通过将配置文件保存在一个(或多个)特定目录中来解决这个问题,然后使用接口常量引用这些目录。然后,您可以将接口放在需要加载配置文件以使路径可用的任何类上。
标签: php oop autoloader