TP(thinkPHP)框架多层控制器和多级控制器的使用示例


Posted in PHP onJune 13, 2018

本文实例讲述了TP(thinkPHP)框架多层控制器和多级控制器的使用。分享给大家供大家参考,具体如下:

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

├─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,

其命令空间是这样的;

<?php
namespace Home\Controller\Admin;
use Think\Controller;
class IndexController extends Controller {
  public function hello(){
    echo 'hello';
  }
  public function test(){
    echo 'test';
  }
}

多级控制器的实例化:

可以直接实例化

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

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP常用函数小技巧
Sep 11 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
php实例分享之mysql数据备份
May 19 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
php7 list()、session及其他模块的修改实例分析
May 25 PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 #PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 #PHP
php中html_entity_decode实现HTML实体转义
Jun 13 #PHP
php处理多图上传压缩代码功能
Jun 13 #PHP
You might like
Yii框架关联查询with用法分析
2014/12/02 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
vue.js实现简单购物车功能
2020/05/30 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
Python与Redis的连接教程
2015/04/22 Python
基于python实现聊天室程序
2018/07/27 Python
python 接收处理外带的参数方法
2018/12/03 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
几个常见的软件测试问题
2016/09/07 面试题
护理学专业推荐信
2013/12/03 职场文书
化学教师自荐信范文
2013/12/28 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
学校捐款活动总结
2015/05/09 职场文书
大学生入党自传2015
2015/06/26 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫