Php 使用数据库存储配置而不是配置文件

Php 使用数据库存储配置而不是配置文件,php,sql,mysql,database,configuration,Php,Sql,Mysql,Database,Configuration,不幸的是,搜索这种材料会给我带来很多噪音,所以我想知道这里是否有人知道一个好的资源,适合希望学习如何使用数据库来存储站点配置信息而不是文件的人 我想我感兴趣的是: 1) 如何存储数据。像e107这样的阵列?每一行都是单独的吗? 2) 如何获取配置数据。全局数组 每行一行,类似于EAV 当然,全局数组或对象听起来不错 考虑以下几点: 某些配置必须存储在配置文件中,除非您硬编码它,特别是如何连接到数据库 数据库不善于存储某些类型的配置数据——高度结构化的数据,或者具有不可预测或可变结构的数据——最

不幸的是,搜索这种材料会给我带来很多噪音,所以我想知道这里是否有人知道一个好的资源,适合希望学习如何使用数据库来存储站点配置信息而不是文件的人

我想我感兴趣的是: 1) 如何存储数据。像e107这样的阵列?每一行都是单独的吗? 2) 如何获取配置数据。全局数组

  • 每行一行,类似于EAV

  • 当然,全局数组或对象听起来不错


  • 考虑以下几点:

    • 某些配置必须存储在配置文件中,除非您硬编码它,特别是如何连接到数据库
    • 数据库不善于存储某些类型的配置数据——高度结构化的数据,或者具有不可预测或可变结构的数据——最终可能会得到一个毫无意义的模式
    • 在SCM系统中存储配置文件要容易得多
    • 您可以在升级时简单地替换配置文件,如果需要返回,您可以回滚它。尝试对数据库表执行此操作?即使在最好的情况下,情况也会变得更困难
    我通常会选择一个配置文件,用于小型web应用程序


    一旦您拥有了一个涉及web和非web服务器的基础设施,将配置放在一个可以集中访问的位置就成为了一个优势。这不一定是SQL数据库,有些人使用LDAP甚至DNS。

    对于用户通过web界面更改的设置,您的方法非常常见


    您可以查看WordPress在数据库中存储配置的方式。

    类似的内容应该适合您:

    CREATE TABLE `config` (
      `prop` varchar(100) DEFAULT NULL,
      `value` mediumtext,
      UNIQUE KEY `lookup` (`lookup`)
    ) ENGINE=InnoDB
    

    将密钥放入prop,将配置值放入value

    我要在教堂里发誓,并谦卑地指出,两者都可以:)

    您可以将配置参数存储在数据库中,然后在保存参数时生成所需的任何配置文件

    这是一种冗余形式,但也有以下优点:

  • 现在,您可以将配置参数与普通查询相结合
  • 对于DB中的每个参数,您可以添加一个默认值,这意味着您可以轻松地“重置”它
  • 您可以选择更轻松地处理配置(甚至跟踪更改)
  • 您甚至可以构建一个web表单来修改配置(现在您不需要直接访问web服务器)
  • 敏感数据在web服务器文件系统上不再可见

  • 应用程序数据!=配置数据。一个属于数据库,另一个不属于。用户设置是另一个话题。