Symfony2 组织控制器的最佳方式(控制器名称)
Symfony2 best way to organise controllers (controller names)
我正在尝试建立在 Symfony 中使用控制器的最合乎逻辑的方式。推荐的约定是什么?
在其他框架中,我之前已经创建了与每个模型相关的控制器。例如如果有一个 User 模型,一个 UserController 将处理与用户相关的事情,例如登录、注销等。我不知道这是否是组织应用程序的最佳方式,以及它是否以同样的方式适用于 Symfony。
我什么时候应该创建一个新控制器?用于什么目的?
- 是否有控制器处理与每个实体相关的请求?
- 基于路由名称 (URL) 为网站的每个 'section' 设置一个控制器?
- 只需为一个包使用 DefaultController 并将所有操作放在那里,并为整个包使用路由前缀。
bundle 需要有 DefaultController 吗?
我什么时候会在我自己的控制器上使用 DefaultController(反之亦然)?
一个例子。我有 AppBundle
和 AdminBundle
。两者都有自己的登录系统(您可以登录到 'front-facing' 站点,或以管理员身份登录到管理部分)。
假设我有以下示例路线:
普通用户(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)
在这里组织我的控制器的最佳方式是什么?我需要多少个控制器以及我要遵循什么约定?
您不需要 DefaultController。
我认为创建一个控制器来管理实体是个好主意。其他做法是"one feature - one controller".
来自最佳实践:
there's no technical reason for putting business logic inside of a bundle.
因此,如果您有两个捆绑包的一个实体(例如用户),您可以将其直接放入 src/Entity/User.php
。
我正在尝试建立在 Symfony 中使用控制器的最合乎逻辑的方式。推荐的约定是什么?
在其他框架中,我之前已经创建了与每个模型相关的控制器。例如如果有一个 User 模型,一个 UserController 将处理与用户相关的事情,例如登录、注销等。我不知道这是否是组织应用程序的最佳方式,以及它是否以同样的方式适用于 Symfony。
我什么时候应该创建一个新控制器?用于什么目的?
- 是否有控制器处理与每个实体相关的请求?
- 基于路由名称 (URL) 为网站的每个 'section' 设置一个控制器?
- 只需为一个包使用 DefaultController 并将所有操作放在那里,并为整个包使用路由前缀。
bundle 需要有 DefaultController 吗?
我什么时候会在我自己的控制器上使用 DefaultController(反之亦然)?
一个例子。我有 AppBundle
和 AdminBundle
。两者都有自己的登录系统(您可以登录到 'front-facing' 站点,或以管理员身份登录到管理部分)。
假设我有以下示例路线:
普通用户(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)
在这里组织我的控制器的最佳方式是什么?我需要多少个控制器以及我要遵循什么约定?
您不需要 DefaultController。 我认为创建一个控制器来管理实体是个好主意。其他做法是"one feature - one controller".
来自最佳实践:
there's no technical reason for putting business logic inside of a bundle.
因此,如果您有两个捆绑包的一个实体(例如用户),您可以将其直接放入 src/Entity/User.php
。