如今,许多项目使用不止一种编程/脚本语言,在标准的DRY传统中,如果它们需要相同的信息,它们不应该有单独的配置文件。经过在 中的一个小调查/etc
,看起来在 Ubuntu 中使用了很多不兼容的语法:
varname=value
—— /etc/adduser.conf
varname: value
—— /etc/debconf.conf
varname = value
—— /etc/deluser.conf
$varname value
/etc/insserv.conf
varname value
—— /etc/login.defs
set varname value
—— /etc/lftp.conf
[section]
varname = value
Run Code Online (Sandbox Code Playgroud)
/etc/mke2fs.conf
section
label varname value
set varname value
Run Code Online (Sandbox Code Playgroud)
/etc/smartd.conf
据我所知,这些都不是“ Yaml、XML 或 JSON ”(但其中之一是INI)。对于需要提供简单值 ( debug = true
, welcome = "Hello world!"
, threads = 4
)、简单值数组 ( servers = [dev, test, prod]
) 以及引用其他变量 ( thread_msg = "Using $threads threads"
) 到Bash、Perl和PHP 的值的项目,您会推荐哪种格式(以及为什么)?
前 3 种是序列化格式,不是配置格式。这些格式对于机器来说很容易读写,但对于人类来说却不那么容易读写。不要将它们用于配置。您的用户可能会因此讨厌您。
此外,其中一些文件只是NAME value
成对的。其他文件可能不是真正的配置文件,而是 shell 文件,这意味着它们基本上可以由 shell 获取以进行处理。
我建议使用实际的配置格式,如 INI 或 Apache Style(Config::General
在 Perl 中)
Config::Any
是加载配置的 perl 模块的一个不错的选择,因为它允许用户本质上选择他们选择的格式。
归档时间: |
|
查看次数: |
2377 次 |
最近记录: |