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 相关文章推荐
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
php调用google接口生成二维码示例
Apr 28 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
PDO::errorCode讲解
Jan 28 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 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中全局变量global的使用演示代码
2011/05/18 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
微信小程序实现滑动删除效果
2017/05/19 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
Python中random模块生成随机数详解
2016/03/10 Python
Python编码类型转换方法详解
2016/07/01 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
Python常见工厂函数用法示例
2018/03/21 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
春节联欢晚会主持词
2014/03/24 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js