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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
一个简单的域名注册情况查询程序
Oct 09 PHP
php include的妙用,实现路径加密
Jul 29 PHP
php whois查询API制作方法
Jun 23 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
php实现推荐功能的简单实例
Sep 29 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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/04/09 魔兽争霸
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php addslashes 函数详细分析说明
2009/06/23 PHP
深入解析php中的foreach问题
2013/06/30 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
PHP中phar包的使用教程
2017/06/14 PHP
php生出随机字符串
2017/07/06 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
js实现随机8位验证码
2020/07/24 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
python实现list由于numpy array的转换
2018/04/04 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python重试装饰器的简单实现方法
2019/01/31 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
单位未婚证明范本
2014/01/18 职场文书
小学英语教学反思
2014/01/30 职场文书
小学班主任培训方案
2014/06/04 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
2014年人大工作总结
2014/12/10 职场文书
2014年网管工作总结
2014/12/11 职场文书
2016年党建工作简报
2015/11/26 职场文书
优秀新员工事迹材料
2019/05/13 职场文书