Symfony 中公共数据存储的数组放置在哪里

Posted

技术标签:

【中文标题】Symfony 中公共数据存储的数组放置在哪里【英文标题】:Where To Put Arrays For Common Data Storage In Symfony 【发布时间】:2015-12-13 09:03:09 【问题描述】:

我是 Symfony 的新手,但我喜欢熟悉它(以及它背后的许多概念)。就我在 Symfony 中遇到 MVC 的方式而言,MVC 对我来说非常新。

我的问题是,如果我有一个简单的常用数据数组,我认为这些数据不一定属于数据库表,我应该将其存储在哪里。它是一个实体吗?我应该把它存储在我应该把它放在控制器中吗?其他地方?

我说的是美国数组之类的东西,我可能会用它来为下拉菜单提供动力。现在我必须构建一个实体并将它们存储在数据库中,但想知道是否有更好/首选的方法来做到这一点。

在我的程序化日子里,我会保留一个名为“includes/arrays.php”的文件,并在我需要其中一个时提取它。

谢谢

【问题讨论】:

你实际想要的地方,什么对你更好,如果你想让用户编辑数据,数据库是正确的地方。 【参考方案1】:

如果您想将此数据与其他实体一起使用,例如 State 将连接到 Adress 对象,我会坚持使用实体,因为它使关系更易于实现和使用(我假设您使用某种 ORM,例如教义)。

如果您不想将此数据与其他实体一起使用,也许您想以某种方式将它们硬编码到所有模板中。 http://symfony.com/doc/current/cookbook/templating/global_variables.html(我假设您使用的是 Twig)。

这里回答了一个类似的问题: Where to define static array related to an entity in symfony2 ?

【讨论】:

【参考方案2】:

这取决于。我会选择在数据库中保存这种数据。假设您将来会有一个更新数据的后台。

或者你可以使用config files。例如,在 yml 格式中,数组很容易定义。

【讨论】:

【参考方案3】:

就像@foxtrot 所说,任何可更改的数据都应该存储在数据库中,这样您就不必在发生更改时编辑任何代码。

首先,我将为公共数据创建实体,然后在您部署代码时使用 Fixtures 在数据库中生成条目。

这样,您以后可以通过表单或 phpMyAdmin 进行编辑,但您也可以将默认值写入 PHP 类,这样您就不必手动将所有这些值都输入到数据库中。

见Symfony - DoctrineFixturesBundle

【讨论】:

以上是关于Symfony 中公共数据存储的数组放置在哪里的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 在哪里存储和获取不记名令牌并做出反应?

Symfony2,将 css、javascript、图像放在哪里

在公共 Rails 应用程序中将敏感数据存储在哪里?

Symfony 3 - 组织存储库类和功能

使用 dist 命令后在哪里放置 play framework 的公共目录

在哪里放置需要从数据库中获取数据的域逻辑