TP框架 多级控制器,多层控制器
多级控制器
多级控制器是指控制器可以通过子目录把某个控制器层分组存放,首先需要设置控制器的分级层次,例如,我们设置2级目录的控制器层:
'CONTROLLER_LEVEL' => 2,
控制器文件的位置放置如下:
├─Controller 访问控制器│ ├─User User分级(组)│ │ ├─UserTypeController.class.php│ │ ├─UserAuthController.class.php│ ...│ ├─Admin Admin分级(组)│ │ ├─UserController.class.php│ │ ├─ConfigController.class.php│ ...
多级控制器中的命名空间需要这样定义:
<?phpnamespace Home\Controller\Admin;use Think\Controller;class IndexController extends Controller {public function hello(){echo 'hello';}public function test(){echo 'test';}}
然后就可以通过URL地址访问:
http://serverName/Home/User/UserTypehttp://serverName/Home/Admin/User
多层控制器
ThinkPHP的控制器支持多层和多级,多层指的是控制器可以分层,例如除了默认的Controller控制器层(我们可以称之为访问控制器),还可以添加事件控制器(层),例如:
├─Controller 访问控制器│ ├─UserController.class.php│ ├─BlogController.class.php│ ...├─Event 事件控制器│ ├─UserEvent.class.php│ ├─BlogEvent.class.php│ ...
访问控制器的名称是通过DEFAULT_C_LAYER设置的,默认是Controller。
访问控制器负责外部交互响应,通过URL请求响应,例如 http://serverName/Home/User/index,而事件控制器负责内部的事件响应,并且只能在内部调用,所以是和外部隔离的。
多层控制器的划分可以根据项目的需要自由分层。
如果是定义其他的控制器层,则不一定必须要继承系统的Controller类或其子类,通常需要输出模版的时候才需要继承Controller类。例如:
<?phpnamespace Home\Event;class UserEvent {public function login(){echo 'login event';}public function logout(){echo 'logout event';}}
UserEvent事件控制器位于 Home/Event/UserEvent.class.php 。
wahaha每天学习一点点

浙公网安备 33010602011771号