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 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
php无限遍历文件夹示例分享
Mar 04 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP中递归的实现实例详解
Nov 14 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
php7性能提升的原因详解
Oct 13 PHP
PHP7 错误处理机制修改
Mar 09 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python paramiko模块的使用示例
2018/04/11 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
python 如何调用远程接口
2020/09/11 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
应聘教师推荐信
2013/10/31 职场文书
机械专业求职信范文
2014/07/15 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
个人租房协议书样本
2014/10/01 职场文书
务虚会发言材料
2014/12/25 职场文书
自我推荐信怎么写
2015/03/24 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
企业法律事务工作总结
2015/08/11 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS