在 MVC 模式中放置“通用”控制器(用于管理员/前端目录)的位置


Where to put a "common" controller (for admin/front catalogs) in MVC pattern

在Symfony 3中,我在"控制器"文件夹中创建了两个子文件夹:"admin"和"front",第一个负责管理任务,第二个用于显示首页。

我有一个"用户控制器",它位于"前面"文件夹中,仅仅是因为有像"注册"或"登录"这样的方法显然不能在"admin"文件夹中(因为必须登录才能访问此 URL)

现在我想创建一种在管理面板中编辑用户详细信息的可能性。例如,该方法将称为"编辑"。

最好的方法是什么?从架构模式的角度来看?

  1. 在"admin"文件夹中创建另一个用户控制器。

  2. 将现有的UserController移动到一个新文件夹中,例如"common",并在那里添加"edit"方法。

从您指定的 2 个选项中,我会选择第一个选项。最好按功能分隔控制器。(例如修改任务等)。

但据我了解,您实际上总共有 3 个角色。(管理员、会员和匿名)。因此,您也可以考虑按如下方式对类别进行分组:

管理员、公共、成员

将公共成员控制器和任务保留在那里,在该文件夹中登录并注册公共和完整管理任务。例如,管理员通常也可以编辑成员的数据。但会员只能编辑自己的数据。