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


Where To Put Arrays For Common Data Storage In Symfony

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

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

我说的是像US States数组这样的东西,我可能会用它来驱动下拉菜单。现在我必须建立一个实体,并将这些存储在数据库中,但想知道是否有一个更好的/首选的方式来做到这一点。

在我的程序时代,我会保存一个名为"includes/arrays.php"的文件,当我需要这些的时候就把它拉出来。

谢谢

如果你想将这些数据与其他实体一起使用,例如状态将连接到地址对象,我会坚持使用实体,因为它使关系更容易实现和使用(我假设你使用某种ORM,例如Doctrine)。

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

这里回答了一个类似的问题:在哪里定义与symfony2中实体相关的静态数组?

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

或者你可以使用配置文件。例如,在yml格式中,数组很容易定义。

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

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

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

参见Symfony - DoctrineFixturesBundle