什么时候我应该在mvc中使用多个控制器?

时间:2010-04-13 02:44:24

标签: php model-view-controller

有时你可能想在mvc中使用多个控制器吗?

例如

/controllers/foo.php

/controllers/bar.php

/controllers/foo/baz1.php

/controllers/foo/baz2.php

/controllers/bar/baz1.php

/controllers/bar/baz2.php

有人可能会提供一些示例,我可能想要这样做以及一些示例控制器名称。

有一次我想到的可能是你有一个主站点(对于用户)和一个管理站点(对于客户)。

赞赏所有反馈和建议

4 个答案:

答案 0 :(得分:5)

通常控制器处理代表相应数据库表的模型。因此,如果您有表用户和帖子,您的应用程序将具有用户和发布模型,因此控制器用户和帖子。这是典型的RoR方式,在许多PHP MVC框架中使用。此类应用程序中的URL如下所示:

/controller/action/parameter1/parameter2/...
i.e.
/users/edit/1/
or
/posts/new/

动作对应于控制器类方法。实际上我认为它在MVC架构中成为事实上的标准,因为它看起来很自然和合乎逻辑。

答案 1 :(得分:1)

几乎每当你完成不同的任务时。如果您有涉及处理用户的内容,请为您的控制器用户命名。无论如何,请相应地命名操作(创建,编辑,更新,删除,搜索等)。如果你有一些只能进行搜索的东西,请将其命名为search.whatever。等等。记住这类事情的一个简单方法是从RESTful RFC(对不起,不知道实际的RFC编号是什么),有些东西就像/.com/noun/verb那样名词==全部-encompassing“thing”这个控制器处理和动词==正在执行的动作(见上文)。这至少是一种方法。

答案 2 :(得分:1)

看看书呆子晚餐的来源,http://nerddinner.codeplex.com/,有多个控制器。

答案 3 :(得分:1)

在您的应用程序中,如果您正在使用User,Employee,Department,那么您将在3个类中定义它们,对吧?现在为每个类创建控制器:UserController,EmployeeController,DepartmentController等。

示例:

用户/添加/
用户/编辑/ 1 /
用户/删除/ 1 /

员工/添加/
员工/编辑/ 1 /
员工/删除/ 1 /

部门/添加/
部门/编辑/ 1 /
部门/删除/ 1 /