CMS配置 - MySQL还是XML?

时间:2012-06-08 17:22:56

标签: php mysql xml content-management-system config

我的CMS将有许多配置值,例如网站名称,标语等等 - 每次生成页面时都会读取这些值。这些值当然会被缓存,持续时间设置为1-2小时或类似(将在设置更改时重置)。

我应该使用XML还是MySQL保存这些值?性能老虎机最好的方法是什么?

3 个答案:

答案 0 :(得分:3)

称之为传统,但我发现.INI文件对PHP应用程序特别有用。

PHP有一个内置的parse_ini_file()函数,可以轻松实现这一目标

方便地,它返回一个数组,您可以使用该数组将多个文件合并为一个$config数组或AppConfig单例类

实际上,PHP使用.INI文件来配置自己!见/etc/php.ini:)


你可以做一些有用的事情,比如

配置/ db.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)进行控制。