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.MVC的模板标签系统(三)
Sep 05 PHP
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
php中explode函数用法分析
Nov 15 PHP
初识laravel5
Mar 02 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 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
一个用php3编写的简单计数器
2006/10/09 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
python中实现将多个print输出合成一个数组
2018/04/19 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Python 面试中 8 个必考问题
2018/11/16 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
Numpy的简单用法小结
2019/08/28 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
python 线程的五个状态
2020/09/22 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
公司建议书怎么写
2014/05/15 职场文书
公司安全管理制度范本
2015/08/05 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python