如今,许多项目使用不止一种编程/脚本语言,在标准的DRY传统中,如果它们需要相同的信息,它们不应该有单独的配置文件。经过在 中的一个小调查/etc,看起来在 Ubuntu 中使用了很多不兼容的语法:
varname=value —— /etc/adduser.confvarname: value —— /etc/debconf.confvarname = value —— /etc/deluser.conf$varname value /etc/insserv.confvarname value —— /etc/login.defsset 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 次 |
| 最近记录: |