我需要一个很好的配置文件格式。我打算放置表格模式。像symfony,ruby on rails等什么是配置文件的最佳文件格式? Yaml或XML或JSON编码的文件?哪个最适合这个目的?什么是配置文件的最佳文件格式?
回答
正如其他人所说,你有很多选择。除非你有一个非常好的理由去做(不能想到任何),否则不要发明(即写解析器)这样的事情。只是评估你的选择:
- 你需要的任何地方访问这些数据,我的应用程序之外(与另一种语言)
- 你希望用户(或自己)能够编辑使用简单的文本编辑器中的文件
- 你需要向后兼容旧版本使用的语言
例如兼容性,PHP提供了非常简单的序列化()和反序列化()函数。然而,这种格式不容易被人读取/编辑(XML也可能难以阅读,但不像PHP格式那么难,Python的pickle模块更糟糕)。如果您需要使用其他语言访问数据,这是一个不错的选择。想想其他人 - 我最近在我的python项目中解析来自部落项目的PHP序列化数据! JSON是一个更好的选择,因为它的人类可读性(如果它的“漂亮打印”,而不是压缩形式!),人性化编辑和每种主要语言都支持JSON。但是,您将失去向后兼容性,例如用python,JSON需要版本2.6+。
我回答了答案的一部分:XML如何不易被人读取/编辑?这是它的一大优点。 (它比JSON更详细,并且JSON没什么问题) – ViennaMike 2011-05-24 21:04:28
嗯,你说得对,它比PHP的序列化格式或python腌菜更可读。但它也非常冗长,我发现在阅读时感到分心,在写作时很麻烦。有一个称为“XML编辑器”的整个软件类别是有原因的;) – c089 2011-05-29 11:12:57
我将答案改为“不那么容易”。 – c089 2011-05-29 11:13:42
你打算放哪里?
你有选择的负荷:每一个新的行
- XML与自定义标签
- 键值对?
我不会推荐SQLite作为配置,因为您需要SQLite客户端工具来设置您的应用程序,并且您还需要熟悉SQL查询。 – RaYell 2009-08-07 07:12:51
*.ini
应该对此
[MyApp]
var1 = "foo"
var2 = "bar"
[MyPlugin]
var1 = "qwe"
您可以轻松地阅读它使用parse_ini_file()
$config = parse_ini_file('/path/to/config/file', true);
echo $config['MyApp']['var2'];
很好的回答。特别是如果长期的语言范围保持为PHP。我一直使用.ini文件作为我的应用程序中的“控制杆和控制旋钮”。 – pimbrouwers 2015-04-04 19:03:13
ini是否支持多行字符串? – starbeamrainbowlabs 2016-05-30 12:47:46
Joomla最近从ini文件切换到JSON编码文件。编码和解码json使用json_encode()
和json_decode()
比读取和写入ini文件执行得更好。
但是有一个缺点:json不容易被人读取。你需要使用一个php脚本来编码你的配置文件。当你想在你的网站的管理员部分编写你的配置时,你可以很好地使用这个解决方案。
我会说JSON是非常人性化的(与标准的PHP序列化格式相比)。 – 2009-08-07 07:26:04
JSON是一个不错的选择,在我看来。你可以定义你的数据库模式,例如:
{
table1: {
id: {
type:"int",
autoincrement:true
},
some_field: {
type:"string",
}
},
table2: { // etc
}
}
那么就使用json_decode把它变成一个PHP数组。
例如
$tables = json_decode($json_text);
foreach ($tables as $tablename => $t) {
foreach ($t as $fieldname => $field) {
echo "Table {$tablename} has a record called {$fieldname}";
}
}
这将打印: Table table1 has a record called id Table table1 has a record called some_field
JSON是更容易比XML在我看来,和json_encode工作/解码非常快,所以有小的开销。在我看来,它比XML更可读,并且比INI文件更好地处理复杂的数据结构。有些人更喜欢YAML,但是语法真的没有太大的区别。
我的偏好是
- 有案可稽的PHP文件
- 数据库用户的具体配置
就像WordPress和无数其他的PHP应用程序使用
这些家伙真的给你已经有好的答案。我个人喜欢文件根目录之外的.ini文件。另外请确保(如果您使用的是Linux托管环境),您的文件只能由您的Web服务器读取,且不可写入。
然后,您可以简单地解析INI文件并使用您的配置设置。 (这是如果你使用的是PHP等语言,JavaScript等ect不会在这里工作。)
但它就像他们说的。这一切都取决于你想要在你的配置文件中有什么数据,以及你想要什么。
问候 康拉德C“”)
- 1. LVM配置文件是什么格式?
- 2. 什么是保护配置文件的最佳方式
- 3. 什么是使用配置文件的最佳方法?
- 4. 什么是用于CSS Sprites的PNG文件的最佳颜色配置文件?
- 5. 语言文件的最佳格式是什么?
- 6. 什么是制作一个简单的Perl配置文件的最佳方式?
- 7. 在配置文件中存储决策表的最佳方式是什么?
- 8. 在EAR文件中保存配置设置的最佳实践是什么?
- 9. Java应用程序配置文件位置的最佳实践是什么?
- 10. 将我的avi文件转换为flv格式的最佳方式是什么?
- 11. dde文件关联的最佳.net替代文件是什么?
- 12. 什么是生成文件并以.net格式打印的最佳方式?
- 13. 实现字典应用程序文件格式的最佳方式是什么?
- 14. 更新匹配公式以有条件格式的最佳方式是什么?
- 15. 加载正确的PhoneGap文件的最佳方式是什么
- 16. 什么是从NDK中的扩展文件加载文件的最佳方式
- 17. 什么是下载内容的最佳文件位置?
- 18. 配置文件格式
- 19. 组织特征文件的最佳方式是什么?
- 20. 什么是合并大文件的最佳方式(40GB +)
- 21. 什么是存储软件文档的最佳方式?
- 22. 什么是通过xls生成kml文件的最佳方式
- 23. 验证用户上传文件的最佳方式是什么?
- 24. 管理文件/项目关系的最佳方式是什么?
- 25. 从Java编写excel文件的最佳方式是什么?
- 26. 在Perl中解析Excel文件的最佳方式是什么?
- 27. 什么是仅允许包含PHP文件的最佳方式?
- 28. 什么是合并mp3文件的最佳方式?
- 29. 在Ruby中写入文件的最佳方式是什么?
- 30. 在Delphi中URLEncode文件名的最佳方式是什么?
你知道,如果你接受更多的问题,你会得到更多的代表,对不对? – 2011-03-23 13:08:44