Symfony2架构

时间:2015-07-12 19:54:11

标签: php symfony architecture

我正在使用Symfony2开发一个应用程序,该应用程序有3个主要部分,称为frontoffice,backoffice,admin。我想创建三个单独的包:FrontOfficeBundle,BackOfficeBundle,AdminBundle但Symfony的文档说,每个包不应该彼此有任何关系。实体已经是共享属性,可能还有一些模型。我可以创建一个SharedBundle但它没有意义。我记得当我创建一个应用程序2年后,当我有15个捆绑并且彼此相互连接时,我从经验中知道它是一场噩梦。

我是否应该在文件夹中只有一个捆绑AppBundle和逻辑分割,例如。控制器/管理; Controller / FrontOffice,Controller / BackOffice?

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

关于SRPDRY

的全部内容

创建一个包没有什么坏处,所以为多个包中需要的东西制作一个单独的包,例如:我倾向于创建一个包含实体及其存储库(作为服务)的EntityBundle。

当然,您也可以使用单个AppBundle,但不要将您的逻辑放入控制器 - >创建可重用的服务!将您需要的服务注入您的控制器(它本身也应该是服务)。

Alternatives to base Controller Methods

答案 1 :(得分:0)

没有最好的方法。

但是,我不想在目录中按类类型(Controller,Command,Form,Templates)进行分组,而是为每个请求操作创建一个“组件”目录。所以我会

Action
  FrontOffice
  BackOffics
  Admin
    User
      UserController.php
      UserFormType.php
      UserTemplate.html.twig

以这种方式对文件进行分组确实可以减少查找各种文件的位置。这是“最好的”方法吗?不。但它对我有用。