PHP项目:如何处理常规配置数据?

PHP项目:如何处理常规配置数据?,php,symfony,database-design,conceptual,Php,Symfony,Database Design,Conceptual,我现在开始构思一个新项目,它将使用Zend Framework 2或Symfony 2 我现在想知道,因为我是数据建模和应用程序概念方面的新手,如何处理不会链接到实体的一般配置数据。例如,我有常数、数字,甚至文本和媒体,它们应该可以通过管理进行配置,并且与整个应用程序有关,但与我的模型数据无关(例如,产品的最高价格、一些一般范围等,我根本不知道如何存储)。 那么,我是否应该: 创建一个“参数”表或相关的东西,它将存储我的应用程序的所有全局参数 使用INI文件或YML文件(如在Symfony中,

我现在开始构思一个新项目,它将使用Zend Framework 2或Symfony 2

我现在想知道,因为我是数据建模和应用程序概念方面的新手,如何处理不会链接到实体的一般配置数据。例如,我有常数、数字,甚至文本和媒体,它们应该可以通过管理进行配置,并且与整个应用程序有关,但与我的模型数据无关(例如,产品的最高价格、一些一般范围等,我根本不知道如何存储)。 那么,我是否应该:

  • 创建一个“参数”表或相关的东西,它将存储我的应用程序的所有全局参数
  • 使用INI文件或YML文件(如在Symfony中,如果我最终使用此文件)来存储我的参数?如果是,如何处理?最佳实践是什么
  • 有更好的解决方案吗
我发现的唯一可能性是使用Symfony,使用config.yml文件或一般的yml文件来存储我的常规配置。但是这种存储的最佳做法是什么?如何安全地管理它们

我希望这个问题不要太笼统


谢谢。

就我个人而言,对于我的大多数大型项目,我都使用文件和数据库解决方案相结合的方式(我知道很多人都这样做)

  • 数据库中的配置表,用于存储可通过CMS/管理面板配置的所有参数
  • 一个较大的INI/YAML文件,用于保留应用程序的基本配置
  • 用于模块/功能/路由等的许多较小的INI/YAML文件
这些INI/YAML文件不受代码版本控制,很少更改,也被缓存

为了在代码中获取这些值,我只使用一个
ConfigManager
类,其优先级为数据库值->部分文件值(取决于模块等)->主文件值


p.S.YAML(Symfony的本地版本)非常好,如果我已经实现了它,我就不会将其更改为INI。

谢谢您的回答。您基本上是在所有项目中使用此指南,还是主要用于Symfony项目?