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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
PHP 中dirname(_file_)讲解
Mar 18 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
基于PHP静态类的原罪详解
May 06 PHP
php多文件上传下载示例分享
Feb 20 PHP
PHP多进程编程实例
Oct 15 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
详解thinkphp中的volist标签
Jan 15 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 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
基于php缓存的详解
2013/05/15 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
nodejs读取memcache示例分享
2014/01/02 NodeJs
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
Vue列表页渲染优化详解
2017/07/24 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
Python学习资料
2007/02/08 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python elasticsearch环境搭建详解
2019/09/02 Python
python3实现绘制二维点图
2019/12/04 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
决心书标准格式
2014/03/11 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
公司员工离职感言
2015/08/03 职场文书
八年级作文之友谊
2019/12/02 职场文书