我有一个在Symfony2中开发的应用程序.现在它的结构如下:
这个结构好吗?或者像论坛功能一样使用捆绑包 - ForumBundle - 包括与论坛相关的每个层(控制器,服务,域逻辑和持久性).
Eln*_*mov 17
关于如何使用捆绑包构建应用程序没有严格的规则,但这是我在Symfony2上开发近一年后所得到的.
使用一个特定应用程序包.首先,我开始与多个束等CommonBundle,UserBundle,MainBundle,BlogBundle,ContactBundle,等等.这被证明是不那么方便到底,所以切换到只是一个应用程序特定束- AppBundle.
您可以使用子名称空间整齐地组织代码.例如,后端控制器将转到子AppBundle\Controller\Backend名称空间.
请注意,我正在谈论一个特定于应用程序的捆绑包 - 这些东西对于具体应用程序来说是独一无二的,并且在其他地方重用是没有意义的.您仍然可以为可重用的东西开发单独的包,并将它们放入供应商基础架构中.
保持非Symfony特定的东西不受捆绑.如果模型和服务层类不是Symfony2特定的,则不需要为模型和服务层类创建一个包.有关详细信息,请参阅此问题和我的答案.
像Elnur所说,使用一个AppBundle是一个很好的做法.
单个包自己实现了MVC模式,所以我认为使用bundle来分离你的层并不是一个好主意.
我认为使用bundle的最佳方式是思考"开源".如果您正在开发的功能足够通用,可以为所有人发布,或者在将来的项目中重用,请将此功能放在一个包中.这种方式将强制您构建功能,而不需要属于AppBundle的任何业务规则.
捆绑是砖