Symfony2组织控制器的最佳方式(控制器名称)

时间:2015-02-01 17:25:30

标签: php symfony

我试图建立在Symfony中使用控制器的最合理方式。推荐的约定是什么?

在其他框架中,我之前创建了与每个​​模型相关的控制器。例如如果有User模型,UserController将处理与用户相关的事情,例如登录,注销等。我不知道这是否是组织应用程序的最佳方式,如果它适用于和Symfony一样。

  1. 我应该何时创建新的控制器?出于什么目的?

    • 让控制器处理与每个实体相关的请求吗?
    • 为每个'部门配备一个控制器。一个网站,基于路线名称(URL)?
    • 只需将DefaultController用于捆绑包并将所有操作放在那里,并为整个捆绑包使用路由前缀。
  2. 捆绑包是否需要DefaultController?

  3. 我什么时候会在我自己的控制器上使用DefaultController(反之亦然)?


  4. 一个例子。我有AppBundleAdminBundle。两者都有自己的登录系统(您可以登录前面的网站,或以管理员身份登录管理部分)。

    想象一下,我有以下示例路线:

    普通用户(AppBundle)

    /                 (home page)
    /login            (normal user login)
    /directions       (feature 1)
    /menu             (feature 2)
    /menu/comments    (a sub-section of feature 2)
    

    管理员(AdminBundle)

    /admin                  (administrator home page)
    /admin/login            (admin login)
    /admin/users            (view registered users)
    /admin/users/345/edit   (edit user with ID 345)
    

    在这里组织控制器的最佳方法是什么?我需要多少个控制器以及我将遵循哪些约定?

1 个答案:

答案 0 :(得分:0)

您不需要DefaultController。 我认为创建一个控制器来管理实体是个好主意。其他做法是“一个功能 - 一个控制器”。

从最佳实践:

  

将业务逻辑放入捆绑包中没有技术原因。

因此,如果您有两个捆绑包(例如用户)的一个实体,则可以将其直接放在src/Entity/User.php中。

相关问题