存储站点全局变量


Storing Site Global Variables

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

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

这样做

的最佳方法是什么?起初我以为是一个数据库表,但后来肯定是一种只访问少数站点变量的缓慢(ish)方式?我也考虑过一个文件,但想知道当值更改等时我将如何覆盖正确的位。

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

您可能需要研究如何使用属性 (.ini) 文件。

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

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

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

有关详细信息,请参阅以下文章:PHP 性能系列:缓存技术。

你的要求和我的非常相似。受设置扩展 ( http://www.yiiframework.com/extension/settings/) 的启发,我创建了自己的设置 API,该 API 在整个应用程序中可用。请参阅此 https://github.com/xtranophilist/awecms/blob/f9bfc5a09bf050373b710ca15f6685ad8fea9fcd/protected/components/Settings.php获取、设置和删除方法非常灵活,也可以执行批量操作。

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