Tp中的多层控制器和多级控制器使用

多层控制器的目录结构是这样的:

├─Controller 访问控制器
│  ├─UserController.class.php 
│  ├─BlogController.class.php
│  ...
├─Event 事件控制器
│  ├─UserEvent.class.php  
│  ├─BlogEvent.class.php
│  ...

给App应用添加多层控制器,不需添加任何参数,只需按照如上的方式直接建文件即可。

多层控制器实例化:

/*
 * 多层控制器实例化 即和访问控制器Controller同级目录的Service时 可用D方法或A方法
 * 注:访问控制器的名称是通过DEFAULT_C_LAYER设置的,默认是Controller,访问控制器负责外部交互响应,
       其它的控制器层和外部隔离,只能内部调用。定义其他的控制器层,则不一定必须要继承系统的Controller类或其子类,通常需要输出模版的时候才需要继承Controller类。
 */
D('Admin', 'Service');
//或者
A('User','Event'); 
A('Admin/Blog','Event');	//假设当前模块是Home模块
 
// 实例化Home模块的User事件控制器
$User = new \Home\Event\UserEvent();
// 实例化Admin模块的Blog事件控制器
$Blog = new \Admin\Event\BlogEvent();

而多级控制器的目录结构是这样的:

├─Controller 访问控制器
│  ├─User User分级(组)
│  │  ├─UserTypeController.class.php 
│  │  ├─UserAuthController.class.php 
│  ...
│  ├─Admin Admin分级(组)
│  │  ├─UserController.class.php 
│  │  ├─ConfigController.class.php 
│  ...

其访问格式:

http://serverName/Home/User/UserType
http://serverName/Home/Admin/User
设置为多级控制器是需要设置配置参数的,即设置控制器的分级层次,例如设置2级目录的控制器层,如下:

'CONTROLLER_LEVEL'      =>  2,
其命令空间是这样的;

多级控制器的实例化:

可以直接实例化
// 实例化Home模块的User控制器
$User = new \Home\Controller\User\UserTypeController();
// 实例化Admin模块的Blog控制器
$Blog = new \Admin\Controller\Admin\UserController();



你可能感兴趣的:(Thinkphp)