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判断字符串在另一个字符串位置的方法
Feb 27 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
php tpl模板引擎定义与使用示例
Aug 09 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中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
php实现等比例压缩图片
2018/07/26 PHP
PDO::prepare讲解
2019/01/29 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Python实现简易Web爬虫详解
2018/01/03 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
业务主管岗位职责
2013/11/20 职场文书
宣传标语大全
2014/07/01 职场文书
买房子个人收入证明
2014/10/12 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
预备党员群众意见
2015/06/01 职场文书