php - 存储 PHP 应用程序设置的最佳方式?

标签 php mysql

为自定义 PHP 应用程序存储一组全局设置的最佳方法是什么?我正在从事个人项目(实际上是第一个主要项目),需要一种存储键值对的方法来记录应用程序的整体设置。

存储为...的东西

  • 网站的全局名称。
  • 主题(只是一个变量,或主题路径)
  • 等等

我应该把它们放在一张 table 上吗?如果是这样,从 boostrap 查询它们的最佳方法是什么?除了对每个所需设置进行一次查询之外。


更新: 是的,一个 .ini 或解析一个包含文件会很好,而且我知道如何那样做。但我想知道将它们与其他所有内容一起存储在 MySQL 中的最佳方法是什么。


更新 2: 我问这个的原因也是我计划通过管理员界面更改很多这些设置。因此,如果您要更改网站的标题,它会立即更新,我认为最好通过 SQL 来完成,因此需要在数据库中进行设置。

最佳答案

对于一个单一的、小型的、简单的站点,我只需将配置放在一个 PHP 文件中。把事情简单化。 PHP 解析任何东西的速度可能不会比解析 PHP 快。如果你使用 APC,编译后的字节码甚至会被缓存——尽管字节码会为每个请求重新执行。对于一个小的配置文件,这个字节码的执行应该花费很少的时间;对于非常大的文件,可能需要更长的时间。

对于具有大型配置的高流量站点,将配置数据缓存在 APC 中(例如,作为单个数组)是一个好主意 - 至少,您可以节省实际执行的开销config.php 文件中的语句。值得注意的是,Facebook 就是这样做的。当您每秒处理许多请求时,在每个请求上访问磁盘以读取配置文件(使用 parse_ini_file、XML 解析器等)是不可能的。

对于我当前的项目,我们托管了许多站点,每个站点都有自己的配置。每个站点都有一个数据库和一个配置文件;但是,确保您始终使用正确的配置文件和正确的数据库可能会让人头疼。此外,更改将需要在两个地方进行更改——数据库和配置。忘记其中一个总是会导致问题,而且发生得太频繁了。

我们将配置移到数据库中,因此您不可能将数据库与正确的配置分开,并且任何代码更改只需要更新数据库。配置表中的数据也积极缓存在 APC 中,因此我们很少查询它。

所以,回顾一下:

  1. 小型站点:只需使用 config.php 文件
  2. 非常大的网站:在 APC 中缓存
  3. 多个站点:将配置存储在数据库中以减少管理开销;在 APC 中缓存以减少数据库命中

关于php - 存储 PHP 应用程序设置的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2368329/

相关文章:

php - Laravel 5.6 中使用 where 条件从两个表中获取数据

javascript - 允许用户更改背景?并插入数据库

php - 如何动态获取图像从wordpress到图像幻灯片?

MySQL - 该做的和不该做的

php - php 中的 if-else 函数不起作用

php - Twitter 搜索引擎系统过滤主题标签或@

mysql - 将分组日期格式化为可读日期

mysql - 在 MySQL 中使用 FULL OUTER JOIN 组合并展平表

php - 如何根据 Android 上的用户输入从数据库返回数据?

php - 最佳 PHP 图像裁剪类