使用define或static var?

时间:2014-07-17 12:49:46

标签: php oop static constants

我目前正在更新我的个人PHP框架,我有一个问题:在oop风格中存储配置变量的最佳方法是什么?

事实上,我目前正在使用这样的定义变量,因为我总是读到定义变量与配置变量一样好:

define('LOG_FILE', 'app/log/log.txt');

但是,以oop方式,使用静态变量的静态类不是更好吗?

MyFramework::LOG_FILE = 'app/log/log.txt'

1 个答案:

答案 0 :(得分:2)

在框架中保持配置的常用方法是保持注册表(Registry Design Pattern explained in PHP

这样,您可以创建config.yaml或config.json或任何其他您觉得使用方便的格式。然后你的核心框架将解析它并存储在Registry中。 该原则的注册表是静态的,因此可以在全球范围内使用#34;围绕你的框架。 注册表也是一种内部缓存方式,不能一次又一次地读取,解析,存储对象。

在任何步骤中,您都可以通过这种方式进行配置:

$config = Registry::get('config');