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 中公共数据存储的数组放置在哪里的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2,将 css、javascript、图像放在哪里