我的CMS将有许多配置值,例如网站名称,标语等等 - 每次生成页面时都会读取这些值。这些值当然会被缓存,持续时间设置为1-2小时或类似(将在设置更改时重置)。
我应该使用XML还是MySQL保存这些值?性能老虎机最好的方法是什么?
答案 0 :(得分:3)
称之为传统,但我发现.INI
文件对PHP应用程序特别有用。
PHP有一个内置的parse_ini_file()函数,可以轻松实现这一目标
方便地,它返回一个数组,您可以使用该数组将多个文件合并为一个$config
数组或AppConfig
单例类
实际上,PHP使用.INI文件来配置自己!见/etc/php.ini
:)
你可以做一些有用的事情,比如
[development]
host = localhost
user = foo
pass = password123
name = dev_db
[production]
host = localhost
user = sqluser
pass = AJ539jf
name = live_db
将true
传递给parse_ini_file()
中的第二个参数时,PHP将使用节标题作为数组键。输出看起来像这样
Array
(
[db] => Array
(
[development] => Array
(
[host] => localhost
[user] => foo
[pass] => password123
[name] => dev_db
)
[production] => Array
(
[host] => localhost
[user] => sqluser
[pass] => AJ539jf
[name] => live_db
)
)
)
这很棒,因为您可以将所有配置文件检查到版本控制中,只需使用单行应用配置文件或环境变量来确定您的应用运行的环境
另一个答案建议遵循您选择的CMS的配置指南,但是,我发现大多数PHP框架都错过了这个领域的标记;特别是在支持不同环境的多种配置时。编写自己的“扩展”来正确处理应用程序配置通常是我们要做的第一件事,以规避特定CMS的严格解决方案。
使用大型配置阵列的另一个好处是,如果您希望其他应用或服务与您的应用互动,则可以轻松编码为JSON。
答案 1 :(得分:0)
我一般会看CMS,并坚持使用那里的常规。没有什么比寻找所有出现在某处的配置/设置更糟糕的了,只是找到你正在寻找的那个是隐藏在其他地方的异常。无论如何,这种情况下的表现都很小。
答案 2 :(得分:0)
对我来说,XML是存储配置的更好方法。 它易于阅读和编写(通过所有语言),并且易于由极客以外的人控制,并且易于通过版本控制(SVN,Git)进行控制。