架构/设计 - 存储应用程序配置的位置?

时间:2015-03-08 23:25:54

标签: php laravel architecture

我正在Laravel中构建一个Web应用程序。 我有很多应用配置选项,例如:

  • 付费计划的价格
  • 试用模式下的最长天数
  • 免费用户可以拥有的最大分数
  • 默认电子邮件发件人地址

这些选项在应用程序中使用,并且应该在大多数时间都可用。我正在考虑配置一个'配置'要存储的数据库表和访问数据的配置对象...这是一个很好的解决方案吗?如果没有,我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

此类配置通常有两种可能性:

哪一种更适合您的情况取决于:

  • 配置多久更改一次?

几乎从不,然后去找文件。 经常,然后去DB

  • 谁应该可以更改配置?

只有您的管理员使用cli / ssh访问权限,然后转到文件。 一大群人,然后去找DB

  • 配置是否按服务器更改?

如果是,那么您可以利用Laravels标准配置

中的环境检测方法
  • 简单的值(文件足够)或复杂的"模型" (DB)

一般来说,我估计平面文件总是性能更高,容易扩展。


在我目前的申请中,我同时使用:

平面文件配置包含:用户可以上传的文件限制;默认缩略图大小;可用语言;一些第三方代币;邮件寄回地址。

我估计这些东西只会偶尔改变一次,并且总是需要我的(管理员)干预。

DB有包价格表;奖励条件和相关奖励。

网站所有者(我的客户)可以轻松更改自己的这些值,并且它们还包含结构化元数据。例如。如何颁奖,如何调用和翻译等。