我正在学习 Symfony2,关于控制器的部分文档指出,控制器对象上的方法实际上是控制器,而对象更多的是控制器容器。
哪个部分具体称为控制器?我是 MVC 和 OOP 的新手,所以我只是想确保我做对了。
我正在学习 Symfony2,关于控制器的部分文档指出,控制器对象上的方法实际上是控制器,而对象更多的是控制器容器。
哪个部分具体称为控制器?我是 MVC 和 OOP 的新手,所以我只是想确保我做对了。
在您分享的示例页面中,“HelloController 类”是控制器,其功能是控制器“方法”。
好的,他们将默认方法 indexAction() 称为控制器。
在这个 MVC 架构(以及大多数其他架构,如果不是全部)中,“索引”方法是在请求该控制器时调用的默认方法(函数)。
该页面实际上描述了Symfony2 创建者认可的约定。
在一些 MVC 框架中(尤其是在 Java 中)控制器是通过一个控制器的一个类约定来实现的,例如:
class ListContactsController {
public function start() {
// query db...
return ...;
}
}
class AddContactController {
public function start($name, $details) {
// insert into db...
return ...;
}
}
请注意,每个控制器类都有一个方法 start() 定义控制器实际执行的操作
在其他 MVC 框架(如 Symfony2 或 cake-php)中,控制器通过每个控制器一个方法的约定实现,为方便起见将它们组合在一起,例如:
class ContactsController {
public function list() {
// query db...
return ...;
}
public function add($name, $details) {
// insert into db...
return ...;
}
}
这里的约定假设每个控制器都实现为一个方法,而不是一个具有特定方法(如 start())的单独类
编辑:考虑这种差异的另一种方式是: