ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解


Posted in PHP onApril 03, 2019

本文实例讲述了ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面。分享给大家供大家参考,具体如下:

【演示准备】

    首先下载了一个ThinkPHP3.2.3,目录结构如下:(只有Home模块、Index控制器、index操作方法)

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

    然后找了一个简易的错误404页面404.html放到了根目录:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空模块】

访问一个不存在的模块Admin,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 修改根目录下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代码:

// E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME);
header("Location: /404.html");
exit();
再次访问空模块:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空控制器】

访问Home模块不存在的控制器User,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/App.class.php 101行前后代码:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Empty控制器,在里面做404跳转(A方法实例化Empty控制器)。

EmptyController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller {
  public function index() {
    header("Location:/404.html");
    exit();
  }
}

再次访问空控制器:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 【空操作】

访问Home模块下Index控制器不存在的test操作方法,错误提示:

 ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/Controller.class.php 170行前后代码: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Public控制器(继承Controller),在里面定义_empty方法跳转404页面, 然后其他控制器再继承Public。

PublicController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class PublicController extends Controller {
  public function _empty() {
    header("Location:/404.html");
    exit();
  }
}

Index控制器继承Puclic:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

再次访问空操作方法: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中Session的概念
Oct 09 PHP
使用数据库保存session的方法
Oct 09 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
PHP SPL标准库之接口(Interface)详解
May 11 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
php生成酷炫的四个字符验证码
Apr 22 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
PHP自定义多进制的方法
Nov 03 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP反射实际应用示例
Apr 03 #PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 #PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 #PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 #PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 #PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 #PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 #PHP
You might like
PHP.MVC的模板标签系统(五)
2006/09/05 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
PHP 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
九种原生js动画效果
2015/11/11 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python实现SMTP邮件发送功能
2020/06/16 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Python numpy 点数组去重的实例
2018/04/18 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python基于Selenium的web自动化框架
2019/07/14 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
学校安全检查制度
2014/01/27 职场文书
闪闪的红星观后感
2015/06/08 职场文书