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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
简单的PHP图片上传程序
Mar 27 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
php实现图片上传、剪切功能
May 07 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 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
用header 发送cookie的php代码
2007/03/16 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
初识PHP中的Swoole
2016/04/05 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
js仿360开机效果
2019/12/26 Javascript
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
如何基于python实现不邻接植花
2020/05/01 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
考试不及格检讨书
2014/01/09 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL