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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
php mssql 时间格式问题
Jan 13 PHP
php 图片上传类代码
Jul 17 PHP
让PHP支持断点续传的源码
May 16 PHP
PHP读取XML值的代码(推荐)
Jan 01 PHP
小谈php正则提取图片地址
Mar 27 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
php简单备份与还原MySql的方法
May 09 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
js实现弹窗效果
2020/08/09 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python控制台显示时钟的示例
2014/02/24 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
报社实习生自荐信
2014/01/24 职场文书
领导干部保密承诺书
2014/08/30 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
税务会计岗位职责
2015/04/02 职场文书
八年级历史教学反思
2016/02/19 职场文书