Symfony2捆绑/应用程序结构(前端/后端)

时间:2013-05-16 21:24:18

标签: symfony architecture controller bundle structure

我已经阅读了很多关于捆绑包和Symfony2项目架构的不同内容,但是我还没有得出关于单个项目的最佳实践的结论,该项目与重用捆绑包无关原因是这是一个客户特定的项目。

该应用程序是一个大型网站,其中包含不同的部分,如新闻,博客,多步申请表,联系人,推荐书等。每个部分都需要后端和前端功能,例如,新闻文章可以由管理员在后端添加,可以在前端查看。后端将包含一些仅后端功能,例如管理员用户,并且将具有管理日志,该日志将记录每个管理员用户的活动,因此需要在每个后端部分中访问它。

我最初想过为每个部分设置不同的捆绑包,即AdminUserBundle,NewsBUndle,BlogBu​​ndle等,然后我才意识到有很多共享布局/模板和功能(例如AdminLog)。因此,您认为这种项目的最佳做法是什么?我想我有三个选择,但可以接受其他建议:

  1. 1个包,用于控制器,视图,测试等中的后端和前端目录。
  2. 3个捆绑包 - CoreBundle,FrontendBundle和BackendBundle,其中CoreBundle将包含所有共享功能,如实体,AdminLog等。
  3. 每个部分的包,包含控制器,视图,测试等中的前端和后端目录.I.e NewsBundle将包含新闻实体,并将包含前端和后端控制器,视图和测试。 BlogBu​​ndle将包含博客实体以及前端和后端控制器,视图,测试等。
  4. 由于

1 个答案:

答案 0 :(得分:1)

根据Symfony2文档:

  

在Symfony2中,bundle就像一个插件,除了你的应用程序中的所有代码都存在于一个bundle中。捆绑包只不过是一个包含与特定功能相关的所有内容的目录,包括PHP类,配置,甚至样式表和Javascript文件(参见捆绑系统)。

捆绑包应解决业务/功能问题。所以我认为第三个建议是一个很好的解决方案。

你可以拥有一个包含技术问题的CoreBundle,如全局表单类型,表单主题,自定义主题函数。此捆绑包不包含业务问题。

其他捆绑包应仅包含业务问题,例如新闻的捆绑包 Blog 另一个评论 ...

希望它有用。

最好的关注