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中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
一个简单的PHP验证码实现代码
May 10 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php图像处理类实例
Jul 28 PHP
Symfony生成二维码的方法
Feb 04 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 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
虫族 ZERG 概述
2020/03/14 星际争霸
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
php查询及多条件查询
2017/02/26 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
vue router 组件的高级应用实例代码
2019/04/08 Javascript
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python求离散序列导数的示例
2019/07/10 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python实现大量图片重命名
2020/03/23 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
2014年基层党组织公开承诺书
2014/03/29 职场文书
白血病捐款倡议书
2014/05/14 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
自主招生英文自荐信
2015/03/25 职场文书
新党员入党决心书
2015/09/22 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android