几乎每个公共CMS都使用.php配置文件进行数据库设置,等等。例如,WordPress在安装时会自动创建一个.php配置文件。
他们为什么不只使用.ini文件?PHP已经具有parse_ini_file(),并且我确定其他语言也具有类似的功能。
几乎每个公共CMS都使用.php配置文件进行数据库设置,等等。例如,WordPress在安装时会自动创建一个.php配置文件。
他们为什么不只使用.ini文件?PHP已经具有parse_ini_file(),并且我确定其他语言也具有类似的功能。
Answers:
特别是PHP;.ini文件和.conf.php文件之间的差异可以忽略不计。
直接使用PHP进行配置具有明显的优势,即只需要与一种定义良好的可移植语法相关联即可进行配置,并且配置文件正确编码的事实有时很有用。
相比之下;一个ini文件几乎没有提供。并且include
,require
和require_once
都是众所周知的,(主要是)很好的理解。
.ini
文件来存储配置,那么毫无疑问,在运行中,许多配置错误的实例都可以公开访问配置,这通常不是一件好事。对于PHP文件,服务器被错误配置以将其内容提供给访问者的情况将非常非常少。
一般来说,我更喜欢.ini
XML配置文件。在大型系统中,开发人员以外的其他人通常需要更改配置值,可能是DBA或sysadmin。我知道,大多数DBA和sysadmin管理员在使用简单的PHP脚本时都不会遇到任何问题,但是我更喜欢如果没有的话。那里的一个小错误可能会在很多方面损害整个应用程序。
但是在较小的系统中,使用PHP脚本进行配置非常方便。我今天在玩AWS SDK,它也使用PHP脚本进行配置:
CFCredentials::set(array(
'development' => array(
'key' => 'xxx',
'secret' => 'xxxx',
'default_cache_config' => sys_get_temp_dir(),
'certificate_authority' => true
),
'@default' => 'development'
));
而不是对a进行硬编码default_cache_config
,我传递了系统临时文件,这将在我部署脚本的每个系统中使用。该脚本是一个小的概念证明,将在10个开发人员中传递,我希望他们按原样运行它,而无需考虑太多。如果原型得以发展,我将使用我的XML配置类对其进行硬连接(并且显然将不依赖于文件系统缓存)。
答案很简单:conf.php的运行基本上需要零工作。这只是另一个源文件。
没有缓存的速度也是原因。如果需要,可以透明地对PHP config进行操作码缓存。INI文件每次读取时都需要进行文本解析,而您需要自己创建缓存。对于小文件来说,这是可以的,但是对每个请求都可以解析数百行,它可以提高到数十毫秒,对于200毫秒优化的网络而言,这是很多事情。
relate to one well-defined, portable syntax for configuration
我不明白 ini文件也具有定义明确且可移植的语法。每个.conf.php
文件都有其自己的结构,大多数都是基于数组的,但这与ini文件没有什么不同。