2017-09-05 125 views
0

我正在构建一个Symfony应用程序,我希望能够在Web平台中直接配置它(即不必自己更改文件)。要做到这一点,我想用一个键和一个值来创建全局参数。例如,一个密钥可能是一个字符串emails,并且该值是一个电子邮件列表。我应该使用文件还是数据库表来存储参数?

这可以很容易地在Symfony的使用parameter files和读/与应用程序写入该文件来完成,但我认为这也可能是很好用一个数据库,并创建一个parameter表,将有2列键和值。

您认为在设计方面如何?使用一个而不是另一个会更好,还是你认为这不是很重要?

编辑:我想要的是有我可以在我的应用程序中使用的动态参数。例如,我可以改变界面的颜色。

+0

该数据库不用于保存应用程序参数.http://symfony.com/doc/current/best_practices/configuration.html – Sermanes

+0

谢谢我已阅读文档。我应该更具体。我想要的是能够动态地改变我的应用程序将使用的“参数”,例如界面的颜色或用于需要报告的情况下联系的电子邮件列表。 –

+0

在这种情况下是啊 – Sermanes

回答

1

仅对参数在开发环境和生产环境之间切换时使用“参数文件(yml)”。 所以你可以备份和恢复分贝没有问题。

使用localStorage或Cookies进行用户配置。

将数据库用于在开发环境和生产环境之间不改变的站点配置。

+0

感谢您的回复。所以在我的情况下,我应该根据你所说的使用数据库。 –

+0

我认为你必须使用parameter.yml。该数据库不用于保存应用程序参数。 – Sermanes

0

想象一下,您需要让您的当前参数集可供您的同事与您一起处理您的应用程序。如果你有参数文件,你可以简单地将它添加到你的git仓库中,提交并提交到远程。你将如何分享你的数据库?当然,它会包括更多的步骤给你。另外,如果您想要将数据存储从数据库更改为其他内容,则需要定义如何将配置实体再次映射到新存储。根据这个假设,我会说参数文件更适合这个任务。

+0

我确实使用参数文件来获取参数,我不需要定期更改参数。这里的需求是不同的。比方说,我希望能够改变界面的颜色。用一个文件,我需要:1)做出改变; 2)承诺; 3)部署。只是做一个小小的改变和一个频繁的改变将是一个漫长的过程。我认为应用程序运行时不应更改参数文件。 –

+0

我相信,因为它是1)不是你的应用程序模型域的一部分; 2)应用程序部署时应该可以访问它;它不应该存储在您的数据库中。数据库不会影响应用程序配置。而且你错了“有了文件,我需要:1)做出改变; 2)提交; 3)部署。做一个小小的改变和频繁的改变将是一个漫长的过程。”我相信它应该在git仓库中,但是没有跟踪系统(换句话说就是.gitignore) - 除非你不想分享它的版本。为DB写入CRUD将会更长久。 –

+0

此外,您将应用程序绑定到将配置置于数据库的特定存储。您想要更改存储空间的图像 - 无关紧要 - 您需要让数据库在您存储您的配置时使用 - 这在这种情况下是不好的方法。 –

相关问题