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 相关文章推荐
discuz安全提问算法
Jun 06 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 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
linux下编译安装memcached服务
2014/08/03 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
js操作二进制数据方法
2018/03/03 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
Python中的日期时间处理详解
2016/11/17 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python实现猜拳小游戏
2020/04/05 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
回门宴新郎答谢词
2014/01/12 职场文书
集体婚礼证婚词
2014/01/13 职场文书
静心口服夜广告词
2014/03/20 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
户外拓展训练感想
2015/08/07 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
聊聊JS ES6中的解构
2021/04/29 Javascript