【问题标题】:Codeigniter Database Based Configuration Settings基于 Codeigniter 数据库的配置设置
【发布时间】:2011-02-02 02:11:03
【问题描述】:

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

  • 身份证
  • 姓名
  • 价值

基本上我目前正在做的是使用辅助函数从我的设置表中检索特定设置,例如站点名称或当前主题。但是,我开始认为,可能为检索设置而不断调用数据库的次数太多了。

有没有办法从数据库中检索我的应用程序的设置,然后将它们附加到我的配置文件中?我注意到 Mojomotor 做了类似的事情,它是一个 CI 2.0 应用程序,但我更愿意使用最简单和最简单的代码来做到这一点。

我希望能够经常检查数据库中的设置是否已更改并更新配置文件。对数据库的压力越小越好。

【问题讨论】:

  • 谁在更改数据库值,为什么那个人不能只更改配置文件?
  • @Dolph - 在构建 CMS 时,您通常希望非技术用户能够直接从网页更改设置,而无需处理文本编辑器和 FTP 和语法问题。跨度>
  • @Dolph - 夏天是对的。编辑配置文件将是理想的方式,但有些人无法理解简单的指令,例如:打开 config.php 文件,更改引号之间的值,然后保存。有些人就是无法理解这类东西,而且人们习惯于能够从他们的 CMS 中更改和添加设置
  • 大概这会和普通的 CI 配置文件放在一起?

标签: php database codeigniter codeigniter-2


【解决方案1】:

最好的解决方案在中间。不是零数据库调用;而不是每个设置一个数据库调用。而是在每次加载页面时调用一次数据库,并获取记录集/对象中的每个设置,以便应用程序的其余部分可以根据需要引用。

【讨论】:

  • 实际上是天才的想法。因此,也许创建一个名为 $settings 的公共变量并将其设为数组,然后在我的构造函数中,我可以简单地获取所有设置并将它们放入 MY_Controller 中的数组中,站点上的所有其他控制器都扩展该数组,然后获得如下设置: this->settings['site_theme'] 在这种情况下,如果主题被称为“icy”,那么它将返回 icy。我想性能影响会很小,因为设置表中不会超过 50 行,开箱即用可能有 8 行左右。
猜你喜欢
  • 2017-11-23
  • 2012-06-08
  • 1970-01-01
  • 2016-04-14
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
相关资源
最近更新 更多