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分页函数
Jul 08 PHP
桌面中心(一)创建数据库
Oct 09 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
php文件上传的例子及参数详解
Dec 12 PHP
PHP合并静态文件详解
Nov 14 PHP
php读取csv文件并输出的方法
Mar 14 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
浅析php-fpm静态和动态执行方式的比较
Nov 09 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 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+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
python 消费 kafka 数据教程
2019/12/21 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
30年同学聚会感言
2014/01/30 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
团日活动总结范文
2014/04/25 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
python中urllib包的网络请求教程
2022/04/19 Python
MySQL深分页问题解决思路
2022/12/24 MySQL