如何定义通常使用多个捆绑包的实体?

时间:2011-10-03 17:15:15

标签: php symfony bundle

我想创建一个博客系统来练习symfony2, 但目前我在创建用户或博客等实体时感到有些困惑。 原因如下:

  • 用户(或博客)常用于前端和后端(管理员) (目前我考虑过创建FrontendBundle和AdminBundle)
  • 实体必须属于一个捆绑包。

目前我已经考虑过以下方法,但最好的方法是什么 在这种情况下,或者请告诉我是否有其他方式。

  • 创建名为“BlogCommonBundle”的捆绑包,并将“用户”实体定义为“BlogCommonBundle:User”。
  • 定义1个捆绑下的所有控制器,例如“BlogBu​​ndle”,等等 前端/后端(管理员)控制器属于同一个捆绑包。

2 个答案:

答案 0 :(得分:3)

我认为创建一个BlogBu​​ndle并拥有多个控制器来实现前端和管理功能是处理这个问题的好方法。两个控制器都将使用相同的实体和存储库,您可以轻松地在应用程序的安全设置中防火墙管理操作。通过将所有博客与一个捆绑包相关联,您可以保持良好的代码组织。

UserBundle也是如此。提醒自己捆绑包应该代表应用程序的一组类似功能,这很有帮助。因此,如果你有获取博客文章的代码,并允许你创建和管理它们,它们自然地组合在一起。

答案 1 :(得分:2)

我在这里问了一个类似的问题: How to share a Symfony2 model with several projects

我选择了包含所有实体,表单,存储库等的'ModelBundle'方法。这些方法都与FrontendBundle和BackendBundle共享。 到目前为止,我对这个解决方案非常满意。