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

时间:2013-08-27 16:14:23

标签: php symfony database-design conceptual

我目前正在开始使用Zend Framework 2或Symfony 2的新项目的概念。

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

  • 创建一个“参数”表或相关的东西,它会存储我的应用程序的所有全局参数吗?
  • 使用INI文件或YML文件(如在Symfony中,如果我最终使用此文件)来存储我的参数?如果是这样,如何处理它们?什么是最佳实践?
  • 为此任务提供更好的解决方案吗?

我找到的唯一可能是使用Symfony,使用config.yml文件或通常YML文件来存储我的常规配置。但是这种存储的最佳实践是什么?如何安全地管理它们?

我希望这个问题不是太笼统。

谢谢。

1 个答案:

答案 0 :(得分:2)

就个人而言,对于我的大多数大项目,我将文件和数据库解决方案结合在一起(我知道很多人都这样做)。

  • 数据库中的配置表,用于存储可通过CMS /管理面板配置的所有参数。
  • 一个更大的INI / YAML文件,用于保留应用程序的基本配置。
  • 许多较小的INI / YAML文件,用于模块/功能/路由等。

这些INI / YAML文件不受代码版本控制,很少更改,也会缓存。

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

P.S。 YAML(Symfony原生)非常好,如果已经实现的话,我不会将它改为INI。