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 相关文章推荐
关于尾递归的使用详解
May 02 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
php数组去重实例及分析
Nov 26 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
PHP下载远程文件到本地存储的方法
Mar 24 PHP
Yii使用技巧大汇总
Dec 29 PHP
非常重要的php正则表达式详解
Jan 04 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
php实现登陆模块功能示例
Oct 20 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
PHP&amp;MYSQL服务器配置说明
2006/10/09 PHP
安装APACHE
2007/01/15 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
php实现映射操作实例详解
2019/10/02 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python中字符串的修改及传参详解
2016/11/30 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
在python中使用nohup命令说明
2020/04/16 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
函授毕业生自我鉴定
2013/11/06 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
小学语文国培感言
2014/03/04 职场文书
晚会主持词开场白
2014/03/17 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
Redis唯一ID生成器的实现
2022/07/07 Redis
MySQL 原理与优化之Update 优化
2022/08/14 MySQL