存储站点全局变量

时间:2012-05-11 18:24:53

标签: php mysql yii global-variables

快速提问 - 我正在尝试确定存储某些网站变量的最佳方法。我想在我的网站中构建一个“控制面板”类型功能,我可以选择设置,它们将反映在我的网站上。

例如 - 我有一个我正在销售的商品,它有价格(以及显示价格的图片)。我希望能够从自定义后端页面设置此全局变量,而不必去更改img src等。

这样做的最佳方法是什么?起初我认为是一个数据库表,但当然它只是一种访问少数网站变量的缓慢(ish)方式?我也考虑过一个文件,但是想知道在值改变时如何覆盖正确的位。

使用您的专业知识,请您推荐一条大道(如果有一个有利的方法),非常感谢! (如果其他人也使用它,我正在使用Yii框架。)

3 个答案:

答案 0 :(得分:1)

您可能希望查看使用属性(.ini)文件。

函数parse_ini_file(string $filename)返回由.ini文件存储的属性数组。

然而,php没有写入包含的ini文件的功能,因此您需要一个自定义文件。 Here是一个write_ini_file(array $assoc_arr, string $path),它将数组键和值添加到给定路径的ini文件中,如有必要,将旧键值替换为新键值。

答案 1 :(得分:1)

将站点变量存储在数据库中并不是一个坏主意。如果您担心性能,可以使用memcached缓存这些值以避免额外的数据库命中,然后您只需要根据您的使用场景正确地使缓存的值无效。

有关详细信息,请参阅以下文章:PHP Performance Series: Caching Techniques

答案 2 :(得分:1)

您的要求与我的要求非常相似。灵感来自设置扩展程序(http://www.yiiframework.com/extension/settings/),我创建了自己的设置API,可在整个应用程序中使用。见https://github.com/xtranophilist/awecms/blob/f9bfc5a09bf050373b710ca15f6685ad8fea9fcd/protected/components/Settings.php get,set和delete方法非常灵活,也可以进行批量操作。

它还具有自动类型检测功能,可以从后端(管理模块)管理设置值。