码迷,mamicode.com
首页 > 其他好文 > 详细

TP框架 多级控制器,多层控制器

时间:2017-08-27 12:52:09      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:设置   extend   control   blog   控制器   test   end   event   logo   

多级控制器

多级控制器是指控制器可以通过子目录把某个控制器层分组存放,首先需要设置控制器的分级层次,例如,我们设置2级目录的控制器层:

  1. ‘CONTROLLER_LEVEL‘ => 2,

控制器文件的位置放置如下:

  1. ├─Controller 访问控制器
  2. ├─User User分级(组)
  3. ├─UserTypeController.class.php
  4. ├─UserAuthController.class.php
  5. ...
  6. ├─Admin Admin分级(组)
  7. ├─UserController.class.php
  8. ├─ConfigController.class.php
  9. ...

多级控制器中的命名空间需要这样定义:

  1. <?php
  2. namespace Home\Controller\Admin;
  3. use Think\Controller;
  4. class IndexController extends Controller {
  5. public function hello(){
  6. echo ‘hello‘;
  7. }
  8. public function test(){
  9. echo ‘test‘;
  10. }
  11. }

然后就可以通过URL地址访问:

  1. http://serverName/Home/User/UserType
  2. http://serverName/Home/Admin/User

多层控制器

ThinkPHP的控制器支持多层和多级,多层指的是控制器可以分层,例如除了默认的Controller控制器层(我们可以称之为访问控制器),还可以添加事件控制器(层),例如:

  1. ├─Controller 访问控制器
  2. ├─UserController.class.php
  3. ├─BlogController.class.php
  4. ...
  5. ├─Event 事件控制器
  6. ├─UserEvent.class.php
  7. ├─BlogEvent.class.php
  8. ...

访问控制器的名称是通过DEFAULT_C_LAYER设置的,默认是Controller。

访问控制器负责外部交互响应,通过URL请求响应,例如 http://serverName/Home/User/index,而事件控制器负责内部的事件响应,并且只能在内部调用,所以是和外部隔离的。

多层控制器的划分可以根据项目的需要自由分层。

如果是定义其他的控制器层,则不一定必须要继承系统的Controller类或其子类,通常需要输出模版的时候才需要继承Controller类。例如:

  1. <?php
  2. namespace Home\Event;
  3. class UserEvent {
  4. public function login(){
  5. echo ‘login event‘;
  6. }
  7. public function logout(){
  8. echo ‘logout event‘;
  9. }
  10. }

UserEvent事件控制器位于 Home/Event/UserEvent.class.php 。

TP框架 多级控制器,多层控制器

标签:设置   extend   control   blog   控制器   test   end   event   logo   

原文地址:http://www.cnblogs.com/liuzhaobo1999/p/7440030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!