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在页面中调用fckeditor编辑器的方法
Jun 10 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
thinkphp5框架API token身份验证功能示例
May 21 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实现模拟post请求用法实例
2015/07/11 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
js实现漫天星星效果
2017/01/19 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[00:11]战神迅矛
2019/03/06 DOTA
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
Java的五个基础面试题
2016/02/26 面试题
学生就业推荐信
2013/11/13 职场文书
文秘专业应届生求职信范文
2013/11/14 职场文书
怎样填写就业意向
2014/04/02 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python