PHP>存储CMS的可编辑用户设置的最佳方法

时间:2013-05-31 18:07:53

标签: php mysql xml settings

我正在开发一个将由多家公司使用的CMS。因此,每个用户都会有一些个人偏好和设置。

在论坛中搜索我发现将配置设置存储在.ini文件中可能是一个很好的方法...但在我的情况下,每个用户都可以随时更改自己的设置。

请记住,每个用户都会存储30到50个选项(只是一些变量/值或几个数组),每个用户都有自己的数据库,但所有文件都将在同一服务器中共享。

所以,我想知道什么是最好的方式......

1)数据库:

创建一个“config”表,将每个设置存储为一行,每次应用程序都会访问数据库以加载设置; 类似的东西:

第1行 - > var =“user_logo_url”// type =“string”// value =“http://exemple.com/logo.jpg

第2行 - > var =“some_array_value”// type =“array”// value =“序列化值在这里”

2)XML:

将数据存储到xml文件中并解析它以加载配置(或者可以在登录时加载并将其存储在$ _SESSION中。

3)DATABASE并编写一个INI或PHP文件:

好的,那个我甚至知道它是否可能,但它是要将所有设置存储在数据库中(以便于管理)然后使用fwrite将设置保存为php文件中的变量,而不是,以便在加载设置时获得更好的性能。

我在php上很新,所以我不知道考虑应用程序性能的最佳方法是什么,并且非常感谢任何帮助!

如果我不清楚某事请告诉我!

谢谢!

3 个答案:

答案 0 :(得分:2)

我将设置存储为json字符串,试一试...搜索json_encode和json_decode

答案 1 :(得分:1)

我个人会使用数据库。只需创建一个名为“config”(或类似的东西)的表,其中包含两个字段:configId varchar(100),configValue varchar(255)(如果预计有大量数据,则键入文本)。

可以序列化PHP数组,也可以使用implode()将它们与分隔符连接在一起(稍后使用explode()重新分隔)。

示例:

$value = array("one", "two", "three");
$configValue = implode("|", $value);

$configValue将返回:"one|two|three"作为单个字符串。使用$value = explode("|", $configValue);将扭转此过程。

答案 2 :(得分:0)

顺便说一句,你可以保存db,当你要加载时,你加载一个全局var并保存数据库请求(网名等),或者与db或甚至通过ini文件建立持续连接(使用php .ini解析)。 由于缺乏性能,它们可能会相同,因为它们必须加载,但是如果你有一些配置需要加载一次的网站,你可以连接db - >在var上存储并使用该var来满足您的需求