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脚本的10个技巧(1)
Oct 09 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
PHP中的类型约束介绍
May 11 PHP
php模拟post上传图片实现代码
Jun 24 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
Laravel框架下的Contracts契约详解
Mar 17 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
python利用hook技术破解https的实例代码
2013/03/25 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
用python实现对比两张图片的不同
2018/02/05 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python工厂函数用法实例分析
2018/05/14 Python
django初始化数据库的实例
2018/05/27 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
学年自我鉴定范文
2013/10/01 职场文书
客服部班长工作责任制
2014/02/25 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
财务个人年度总结范文
2015/02/26 职场文书
基石观后感
2015/06/12 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python