0

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

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

在我很快意识到有很多共享的布局/模板和功能(例如 AdminLog)之前,我最初考虑为每个部分使用不同的包,即 AdminUserBundle、NewsBUndle、BlogBu​​ndle 等。因此,您认为此类项目的最佳实践是什么?我想我有三个选择,但可以接受其他建议:

  1. 1 个捆绑包,包含 Controller、Views、Tests 等中的后端和前端目录。
  2. 3 个捆绑包 - CoreBundle、FrontendBundle 和 BackendBundle,其中 CoreBundle 将包含所有共享功能,例如 Entities、AdminLog 等。
  3. 每个部分都有一个包,其中包含控制器、视图、测试等中的前端和后端目录。即 NewsBundle 将包含新闻实体,并将包含前端和后端控制器、视图和测试。BlogBu​​ndle 将包含博客实体和前端和后端控制器、视图、测试等。

谢谢

4

1 回答 1

1

根据 Symfony2 文档:

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

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

您可以拥有一个包含技术问题的 CoreBundle,例如全局表单类型、表单主题、自定义原则功能。此捆绑包不包含业务问题。

其他捆绑包应该只包含业务问题,例如新闻捆绑包、博客捆绑包、评论捆绑包……

希望它有帮助。

最良好的问候

于 2013-05-16T21:39:25.997 回答