我正在Laravel构建一个Web应用程序。我有许多应用程序配置选项,例如:
- 付费计划的价格
- 试用模式下的最长天数
- 免费用户可以拥有的最大积分数
- 默认电子邮件发件人地址
这些选项在整个应用程序中使用,并且应该在大多数情况下都可用。我正在考虑有一个"配置"数据库表来存储和一个配置对象来访问数据......这是一个很好的解决方案吗?如果没有,我应该怎么做?
这种配置通常有两种可能性:
- 应用/配置 http://laravel.com/docs/4.2/configuration
- 数据库中的配置表
哪一个更适合您的情况取决于:
- 配置多久更改一次?
几乎从不,然后去找文件。很多时候,然后去数据库
- 谁应该能够更改配置?
只有您的管理员具有 cli/ssh 访问权限,然后选择文件。一大群人,然后去DB
- 配置是否因服务器而异?
如果是,那么也许您可以利用Laravels标准配置中的环境检测方法
- 简单的值(文件就足够了)或复杂的"模型"(DB)
一般来说,我估计平面文件总是性能更高且易于扩展。
在我当前的应用程序中,我同时使用:
平面文件配置包含:用户可以上传的文件限制;默认缩略图大小;可用语言;某些第三方令牌;邮件返回地址。
我估计这些事情只会偶尔改变一次,并且总是需要我的(管理员)干预。
数据库有套餐价格表;奖励条件和相关奖励。
网站所有者(我的客户)可以轻松更改自己的这些值,并且还包含结构化元数据。 例如,如何颁发奖项,如何称呼和翻译等。