Codeigniter基于数据库的配置设置

4

我正在使用最新的Codeigniter 2.0版本构建一个应用程序。我的应用程序是动态的,有点像自定义CMS。我有一张名为“设置”的数据库表,其包含以下字段:

  • id
  • name
  • value

目前,我正在使用一个帮助函数从我的设置表中检索特定设置,例如网站名称或当前主题。但是,我开始考虑可能为从数据库中检索设置而不断发出固定数量的数据库调用对数据库来说有点过于繁重了。

有没有一种方法可以从数据库中检索应用程序的设置,然后将它们附加到我的配置文件中?我注意到Mojomotor做了类似的事情,它是一个CI 2.0应用程序,但我更喜欢最简单和最容易的代码实现方法。

我最好能够定期检查数据库中的设置是否已更改,并更新配置文件。对数据库的负担越小越好。


谁在更改数据库的值,为什么不能让那个人只更改配置文件呢? - Dolph
2
@Dolph - 在构建CMS时,通常希望非技术用户能够直接从网页更改设置,而无需使用文本编辑器、FTP和语法问题。 - Summer
1
@Dolph - Summer说得对。编辑配置文件确实是理想的方法,但有些人就是无法理解简单的指令,比如:打开config.php文件,更改引号之间的值,然后保存。有些人就是无法理解这种东西,而且人们习惯于能够从他们的CMS中更改和添加设置。 - Dwayne Charrington
这个应该会与正常的 CI 配置文件并列吧? - Piers Karsenbarg
1个回答

6

最佳解决方案在于中间路线。不是零个DB调用,也不是每个设置一个DB调用。相反,每次页面加载时进行一次DB调用,并在记录集/对象中获取每个设置,以便您的应用程序在需要时可以引用它们。


3
其实是个天才想法。可以创建一个名为$settings的公共变量,并将其设置为数组。然后在我的构造函数中,我可以简单地获取所有设置并将它们放入MY_Controller中的数组中,这个控制器会被站点上的所有其他控制器继承,然后可以这样获取设置:$this->settings['site_theme']。在本例中,如果主题叫做“icy”,那么它将返回icy。我想性能影响应该很小,因为在设置表中不会超过50行,可能默认情况下只有8行左右。 - Dwayne Charrington

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接