ThinkPHP支持多层业务控制器的支持

ThinkPHP支持多层业务控制器的支持,给中大型应用提供了方便。
定义多层控制器
我们通常所了解的控制器其实是Controller控制器类,而且大多数也是继承了核心的Think\Controller类,
由于该类控制器是通过URL访问请求后调用的,因此也称之为访问控制器,事实上,ThinkPHP可以支持更
多的控制器分层,多层控制器的定义完全取决于项目的需求,例如我们可以分为业务控制器和事件控制
器:
Home\Controller\UserController //用于用户的业务逻辑控制和调度
Home\Event\UserEvent //用于用户的事件响应操作
├─Controller 访问控制器
│ ├─UserController.class.php
│ ...
├─Event 事件控制器
│ ├─UserEvent.class.php
│ ...
一个标准的访问控制器定义如下:
namespace Home\Controller;
class UserController extend Think\Controller {
// 默认操作方法
public function index(){
//...
}
// 用户注册操作方法
public function register(){
//...
}
}
注:访问控制器的名称并非一定是Controller,而是通过DEFAULT_C_LAYER设置的,默认设置是
Controller。
访问控制器负责外部的交互响应,通过URL请求调用,例如:
ThinkPHP3.2.3快速入门
本文档使用 看云 构建 - 102 -
http://serverName/Home/User/index
http://serverName/Home/User/register
而事件控制器负责内部的事件响应,并且只能在内部调用,所以是和外部隔离的。
确切的说,所有访问控制器之外的分层控制器都只能内部实例化调用。
namespace Home\Event;
class UserEvent {
// 用户登录事件
public function login(){
echo 'login event';
}
// 用户登出事件
public function logout(){
echo 'logout event';
}
}
如果是定义其他的控制器层,则不一定必须要继承系统的Controller类或其子类,通常需要输出模版的
时候才需要继承Controller类。

 

posted @ 2017-12-18 13:25  sky20080101  阅读(144)  评论(0)    收藏  举报