我正在讨论使用configuration.ini
或config.json
作为我正在设计的管理信息中心。我喜欢ini
更多用于配置目的,但是今天对JSON的兴趣似乎更合乎逻辑,因为配置时考虑到了json。
这里的问题是我应该使用json吗?其次,我的configuration.ini
文件中存在此hack,导致文件无法公开显示。
;<?php exit(); __halt_compiler();
; //to stop script execution if not used in our best interest!
; //remember this format
//ini stuff
;?>
我想知道我是否可以在json文件中使用它?我还没有对它进行测试,因为我并不想要任何奇怪的事情,完全搞砸了所有内容。除了对其原理之外的一个很好的描述,现在我知道这不会特别适用于JSON ;
基于ini
的评论是否可以转换为//
或/**/
为json?
出于兴趣目的,这是我的admin__autoload.php
页面
set_include_path(dirname($_SERVER["DOCUMENT_ROOT"]));
$ini = parse_ini_file("configurations.ini",true);
foreach($ini as $section=>$values) {
foreach($values as $key=>$value ) {
define("__".strtoupper($key)."__",$value);
}
}
spl_autoload_register(function($class) {
if(!file_exists(get_include_path(). DIRECTORY_SEPARATOR .__ADMIN__."classes/{$class}.php")) {
echo get_include_path(). DIRECTORY_SEPARATOR .__ADMIN__."classes/{$class}.php does not exist";
} else {
include_once get_include_path(). DIRECTORY_SEPARATOR .__ADMIN__."classes/{$class}.php";
}
});
__ADMIN__
是使用我的ini文件中的foreach循环创建的。
答案 0 :(得分:3)
我想你在这里问两个不同的问题。
2的答案很简单。不要将配置文件放在公共文档根目录中。
至于在INI或JSON之间进行选择,如果不清楚地理解用例,那就相当主观了。
INI对读者更具表现力,但难以解析。 JSON作为序列化格式非常便携,但更难以作为人类阅读。
因此,如果您手动编辑配置文件很多,那么使用INI作为比JSON稍微消除歧义是有意义的。如果您正在通过自主流程进行编辑,或者需要跨不同系统的可移植性进行编辑,那么JSON可能会更方便。
第三种选择是YAML,它是INI人类可读方面与JSON可移植性之间的良好中间地带。