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 相关文章推荐
详解:――如何将图片储存在数据库里
Dec 05 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
php实现统计邮件大小的方法
Aug 06 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
php 函数使用可变数量的参数方法
May 02 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
php用wangeditor3实现图片上传功能
Aug 22 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
PHP5 字符串处理函数大全
2010/03/23 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
js模糊查询实例分享
2016/12/26 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python基础练习之用户登录实现代码分享
2017/11/08 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
django 读取图片到页面实例
2020/03/27 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
使用索引有什么好处
2016/07/27 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
文明村创建实施方案
2014/03/27 职场文书
保护环境倡议书
2014/04/14 职场文书
国情备忘录观后感
2015/06/04 职场文书
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android