Php 我如何定义一个通常用于多个bundle的实体?

Php 我如何定义一个通常用于多个bundle的实体?,php,symfony,bundle,Php,Symfony,Bundle,我想创建一个博客系统来练习symfony2, 但目前我在创建用户或博客等实体时有点困惑。 原因如下: 用户(或博客)通常用于前端和后端(管理员) (目前我已考虑创建FrontendBundle和AdminBundle) 实体必须属于一个包 目前我已经考虑过以下方法,但最好的方法是什么 在这种情况下,或者请告诉我是否有其他方法 创建名为“BlogCommonBundle”的捆绑包,并将用户实体定义为“BlogCommonBundle:User” 定义1个bundle下的所有控制器,例如“Bl

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

  • 用户(或博客)通常用于前端和后端(管理员) (目前我已考虑创建FrontendBundle和AdminBundle)
  • 实体必须属于一个包
目前我已经考虑过以下方法,但最好的方法是什么 在这种情况下,或者请告诉我是否有其他方法

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

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


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

我在这里问了一个类似的问题:

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

为什么不创建一个额外的UserBundle并使前端和管理员依赖于它呢?感谢@hakre的回答,我很抱歉我的反应太慢,我没有注意到你的评论。我没有考虑你当时建议的模式。但正如下面Arms所建议的,这对我来说是一个新想法。我想补充一点,我发现在Symfony2中,停止将您的捆绑包视为symfony1中的一个应用程序非常重要-例如,尝试创建单独的后端和前端捆绑包。试着把它看作是一个完整的symfony1项目/插件,所以如果你需要前端和后端-通常你应该在一个包中完成。谢谢@Arms的回答,我很抱歉我的反应太慢了。将用户和博客捆绑包分开对我来说是一个新想法。在这种情况下,“用户mypage”(前端)控制器和“用户管理”(管理员)控制器是否都在用户bunde下定义?我想参考你的答案,谢谢。@mat8su不用担心:)是的,你的前端控制器和管理控制器都将生活在同一个捆绑包中,因为它们都处理你的用户(或博客)逻辑。感谢@Arms的回复,我理解你的建议。要进一步混淆这一点。。。我会将用户管理功能保留在blog包中,但用户实体本身保留在UserBundle中。如果您正在编写博客捆绑包以供公开发布或在许多不同的项目中使用,您可以为用户设置一个配置选项以指定其用户类。感谢@Dieter给出您的答案,很抱歉我的反应很慢,这与我所担心的情况非常相似。你的案子似乎比我的案子规模大得多,但这是非常有用的信息。我想参考你的答案,谢谢。我的荣幸!请随意+1我的答案,我对这一切都很陌生:)(回答就是说,我通常是问问题的人;-))对不起,目前我有13个声誉,但投票需要15个声誉。所以我稍后会投票支持你的答案,请稍候。(我也是这个网站的新手)