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-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
layui数据表格自定义每页条数limit设置
Oct 26 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
PL-880隐藏功能
2021/03/01 无线电
用定制的PHP应用程序来获取Web服务器的状态信息
2006/10/09 PHP
GD输出汉字的函数的分析
2006/10/09 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
深入解析koa之中间件流程控制
2019/06/17 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
使用python分析git log日志示例
2014/02/27 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python提取频域特征知识点浅析
2019/03/04 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
UNIX文件系统常用命令
2012/05/25 面试题
毕业生自我推荐
2013/11/04 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
TS 类型兼容教程示例详解
2022/09/23 Javascript