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 面向对象 PHP5 中的常量
May 05 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
php tpl模板引擎定义与使用示例
Aug 09 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 递归效率分析
2009/11/24 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
进一步了解Python中的XML 工具
2015/04/13 Python
python异常和文件处理机制详解
2016/07/19 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
tensorflow识别自己手写数字
2018/03/14 Python
python合并同类型excel表格的方法
2018/04/01 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
详解python中递归函数
2019/04/16 Python
Python占用的内存优化教程
2019/07/28 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
2015年暑期社会实践方案
2015/07/14 职场文书
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers