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下载远程文件类(支持断点续传)
Nov 14 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
PHP查看当前变量类型的方法
Jul 31 PHP
PHP编写简单的App接口
Aug 28 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP的PDO事务与自动提交
Jan 24 PHP
php使用json-schema模块实现json校验示例
Sep 28 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
PHP下几种删除目录的方法总结
2007/08/19 PHP
flash用php连接数据库的代码
2011/04/21 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
PHP SOCKET编程详解
2015/05/22 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
js实现div色块碰撞
2020/01/16 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
小程序实现密码输入框
2020/11/16 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
python实现代码统计器
2019/09/19 Python
python 实现矩阵按对角线打印
2019/11/29 Python
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
毕业生求职的求职信
2013/12/05 职场文书
校园报刊亭创业计划书
2014/01/02 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
Python 文字识别
2022/05/11 Python