我希望有一个适用于配置设置的类。配置设置存储在config/
目录中,我希望将它们分隔到文件中。当我打电话给我时
Config::gi()->getConfig('config_name')
我希望Config类能够访问文件config/config_name.cfg.php
并返回名称完全相同的数组(来自该文件)。
这是因为我不想读取所有配置数据(如果不需要)。另外,我有点担心在$GLOBALS
变量中设置配置并不是最佳解决方案。我想过要求或包含那些文件然后返回它们的内容,但它似乎也有点不专业。
阅读这样的配置的最佳做法是什么?提前谢谢。
例如: 配置/ routes.cfg.php
$routes => [
'index' => new Route([
// route config here ...
])
];
要获取routes数组,我将从Config::gi()->getConfig('routes');
类执行helpers/Config.php
。
答案 0 :(得分:1)
我不确定我会不会这样做,我可能会在第一次将所有配置(最有可能是从一个文件中)加载到课堂中并从那里开始。如果您不想在更改时写出数组,也可以查看parse_ini_file()。但就你的情况而言,只需:
public function getConfig($name) {
if(file_exists("config/$name.cfg.php")) {
include("config/$name.cfg.php");
return ${$name}; //this translates to $routes in your example
}
return false;
}
此外,下一个逻辑问题可能是如何在配置发生变化时保存配置:
public function setConfig($name, $data) {
file_put_contents("config/$name.cfg.php", "$name = " . var_export($data, true) . ";");
}
$routes = array(/* with some stuff in it */);
Config::gi()->setConfig('routes', $routes);