什么是最好的文件格式,用于配置文件
-
20-08-2019 - |
题
我创建一个框架,在PHP和需要有一些配置文件。这些文件将不可避免地有大量的项目。
什么样的格式将是最适合这些配置文件?
这是我的定量化的最好的:
- 很容易分析PHP.这将是好的,如果我没有写任何分析代码但是,这不是一个处理器。
- 仍然容易地读通过人类甚至在有大量的项目
- 是一个广泛使用的标准,没有定义的格式
- 简洁是理解
我开始使用XML,但是很快放弃了对于明显的原因。我已经想象和其,但希望看到什么了。
解决方案
如何大约一个INI文件格式?这是一个事实上的配置文件的标准,并PHP有一个内置的分析器,这一格式:
其他提示
你为什么不使用PHP文件的配置?
好处是明确的:
- 可能出现的错误将得到自动抓住了
- 没有必要使用/创建一个自定义的分析器
- 其广泛理解为由PHP程序员
- 你可以有一些自定义的逻辑,例如使用定制的配置用于发展,其他人为生产,等等
其他框架喜欢Django和轨道使用配置文件,该文件是一个剧本。
另一个选择是使用JSON和使用 json_encode
和 json_decode
.
你将能够使用更加丰富的数据结构中的配参数。
Personly我喜欢做的配置数据中的一类。
class appNameConfig {
var $dbHost = 'localhost';
var $dbUser = 'root';
//...
}
然后使用他们所有你需要做的就是
$config = new appNameConfig;
mysql_connect($config->dbHost, $config->dbUser, $config->dbPassword) or die(/*...*/);
改变config你所要做的就是读取文件的类在这我用一个功能是这样的:
function updateConfig($parameter, $value) {
$fh = fopen('config.php', 'w+');
while(!feof($fh)) {
$file .= fgets($fh);
}
$fileLines = explode("\n", $file);
for($i=0;$i<count($fileLines);$i++) {
if(strstr($fileLines[$i], $parameter)) {
$fileLines[$i] = "$" . $parameter . " = '" . $value . "'";
}
}
$file = implode("\n", $fileLines);
fwrite($fh, $file);
fclose($fh);
}
不隶属于 StackOverflow