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 相关文章推荐
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP模板解析类实例
Jul 09 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
9个比较实用的php代码片段
Mar 15 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
Yii框架操作cookie与session的方法实例详解
Sep 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
PHP防注入安全代码
2008/04/09 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
yii添删改查实例
2015/11/16 PHP
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
法律专业推荐信范文
2013/11/29 职场文书
马智宇结婚主持词
2014/04/01 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2014年检验科工作总结
2014/11/22 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
大学校园招聘会感想
2015/08/10 职场文书
学困生转化工作总结
2015/08/13 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers