2

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

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

这样做的最佳方法是什么?起初我认为是一个数据库表,但肯定会是一种仅访问少数站点变量的缓慢(ish)方式?我也考虑过一个文件,但想知道当值发生变化等时我将如何覆盖正确的位。

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

4

3 回答 3

1

您可能需要考虑使用属性 (.ini) 文件。

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

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

于 2012-05-11T18:28:25.983 回答
1

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

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

于 2012-05-11T18:32:56.627 回答
1

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

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

于 2012-05-11T19:54:12.950 回答