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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
通过html表格发电子邮件
Oct 09 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php生成带logo二维码方法小结
Apr 08 PHP
Yii2如何批量添加数据
May 17 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
php装饰者模式简单应用案例分析
Oct 23 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP安全配置
2006/12/06 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
PyQt5实现拖放功能
2018/04/25 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
Python request中文乱码问题解决方案
2020/09/17 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
翻译专业应届生求职信
2013/11/23 职场文书
年会活动策划方案
2014/01/23 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
优秀班主任材料
2014/12/16 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
焦裕禄观后感
2015/06/03 职场文书
JS class语法糖的深入剖析
2022/07/07 Javascript
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技