我应该如何存储项目的设置?
哪个更好-在我的所有设置中使用$settings
数组:
$settings['max_photos'] = 30;
//...
或创建具有所有设置的单例
Config
类?Class Config {
private $max_photos = 30;
//...
}
有什么好的例子吗?
最佳答案
我认为最好使用常量进行配置。例如,使用类常量:
class Config {
const
max_photos = 30,
something_else = 100,
// ...
;
}
echo Config::max_photos;
如果您有PHP 5.3,也可以将它们定义为全局常量:
const MAX_PHOTOS = 30;
echo MAX_PHOTOS;
但是我认为这远没有那么简单明了。
显然,这仅在您仅存储常量(即标量,非表达式值)的情况下才有效。例如,如果您的配置包含数组,那么它将不再起作用。在这种情况下,我将使用具有公共(public)静态属性的Config类:
class Config {
public static $per_page = 30;
public static $array = array(...);
}
echo Config::$per_page;
后者与
$config
数组方法非常相似,但是有一个好处(或者这可能是一个缺点?),可以从任何地方访问该类,包括函数和类,而除非您导入它,否则只能在全局空间中访问该数组。使用global $config;
进入函数/类。关于php - $ settings数组还是配置类来存储项目设置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3270661/