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 相关文章推荐
ADODB类使用
Nov 25 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
PHP排序算法的复习和总结
Feb 15 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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中调用JAVA
2006/10/09 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
JS实现简易日历效果
2021/01/25 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Python代码需要缩进吗
2020/07/01 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
爱之链教学反思
2014/04/30 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
实名检举信范文
2015/03/02 职场文书
公司保洁员管理制度
2015/08/04 职场文书
python中的被动信息搜集
2021/04/29 Python
python 解决微分方程的操作(数值解法)
2021/05/26 Python
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL