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强制下载PDF文件示例
Jan 17 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
PHP中的类型约束介绍
May 11 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
对laravel in 查询的使用方法详解
Oct 09 PHP
Laravel 连接(Join)示例
Oct 16 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
Python中分数的相关使用教程
2015/03/30 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
python3.7调试的实例方法
2020/07/21 Python
化工专业应届生求职信
2013/11/08 职场文书
三方协议书
2015/01/27 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
Java 数据结构七大排序使用分析
2022/04/02 Java/Android
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技