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中执行系统外部命令
Oct 09 PHP
PHP分页显示制作详细讲解
Dec 05 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
php函数与传递参数实例分析
Nov 15 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
Mar 27 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 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中用数组的方法设置cookies
2011/04/21 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
职业生涯规划书基本格式
2014/01/06 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
工程专业应届生求职信
2014/02/19 职场文书
投资协议书范本
2014/04/21 职场文书
统计专业自荐书
2014/07/06 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
投资申请报告
2015/05/19 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android