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 相关文章推荐
用Flash图形化数据(二)
Oct 09 PHP
建立动态的WML站点(一)
Oct 09 PHP
header()函数使用说明
Nov 23 PHP
Cakephp 执行主要流程
Mar 24 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
PHP实现邮件群发的源码
Jun 18 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
php中关于socket的系列函数总结
May 18 PHP
smarty模板判断数组为空的方法
Jun 10 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
laravel5创建service provider和facade的方法详解
Jul 26 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
js控制frameSet示例
2013/09/10 Javascript
jquery禁用右键示例
2014/04/28 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python实现批量图片格式转换
2020/06/16 Python
python实现局域网内实时通信代码
2019/12/22 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
五四演讲稿范文
2014/09/03 职场文书
婚内分居协议书范文
2014/11/26 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
员工自我工作评价
2015/03/06 职场文书
如何使用pdb进行Python调试
2021/06/30 Python