如何使用自动加载器加载 PHP 配置文件

How to load PHP config files with an autoloader

我有一个遗留代码项目,我几乎成功地将其转换为使用自动加载器而不是无数的 include 和 require 语句。

我唯一剩下的问题是设置一些全局配置内容的配置文件。就像现在一样,它只是直接 PHP 加载应用程序所需的变量。

我的想法是将其转换为 class,其中 class 常量用于 "global" 数据。进行 class 常量调用将触发配置的自动加载 class 并将所有内容置于自动加载器的控制之下。

我的问题是这是否是解决此问题的最佳方法,是否其他人也做过类似的事情?

所以在我的应用程序中而不是调用这样的东西来访问配置变量。

$GLOBALS['conf']['thingy'];

那就变成这样了

Config::THINGY

where things 是一个 class const.

class Config {
   const THINGY = 'yes, this is it';
}

这种方法也摆脱了全局数据引用,我认为这总是一件好事。

你绝对是在正确的轨道上。与任何与编程相关的事物一样,有 100 万 + 1 种给猫剥皮的方法,这里有一些选择/w 一些信息。

Yaml:被 Symfony 等框架大量使用。如果您不使用 SF 框架,您可以轻松实现独立 SF Yaml 解析器。支持层次结构。

JSON:维护配置选项的好方法,高度可移植。支持层次结构。

ini:您可以使用内置的 parse_ini_file 函数来加载您的配置设置,但是 ini 文件中的层次结构很难维护,只能使用任意命名空间约定。

数据库:你实际上可以在数据库中存储设置(在永久存储和应用程序之间有一个缓存层),如果你想为用户无需推送代码即可更改值。

class constants:这种方法完全没有问题,但是可以说配置选项中的任何一个都会有点'cleaner' , 更便携