`
33130317
  • 浏览: 526 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

告别ThinkPHP6的异常页面, 让我们来拥抱whoops吧

阅读更多

春节期间熟悉了TP6, 也写了一个TP6的博客程序,但系统的异常页面实在另外头疼,很多时候无法查看到是哪行代码出的问题。

所以就特别的想把whoops引进来,经过一系列的研究,终于找到了解决的办法:

1. 通过composer安装whoops

运行命令:  composer require filp/whoops

注意:composer引进的文件如果有语法错误,需要提前把语法错误处理好才能进行安装,否则一直报错。

2. 使用whoops接管tp6的异常处理

在/app/ExceptionHandle.php文件的render()方法中加入如下代码:

// 添加自定义异常处理机制
if (ENV('APP_DEBUG')) {
    // 如果是HttpResponseException异常则原样输出
    // JUMP插件里的success,error和result方法均返回的是HttpResponseException异常
    if ($e instanceof HttpResponseException) {
        return $e->getResponse();
    }

    // Whoops 接管请求异常
    $whoops = new \Whoops\Run;
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
    return Response::create(
        $whoops->handleException($e),
        'html',
        500
    );
}

 

如下图:

老刘博客

3. 看看结果吧

我在博客首页的index方法中写入了一个不存在的函数:

老刘博客

刷新页面一看, 妥了

老刘博客

OK. 熟悉的whoops又回来了.

4. 后记

为了在thinkphp6中使用whoops, 我又认真的看了一遍PHP7中的异常机制,终于是把whoops给引进来了.

在学习异常处理的过程中, 我也发现在PHP7中应该使用try()catch()来进行业务处理, 而不是再使用if()else()了.

后续我会单独写篇文章来讲述我在研究PHP7的异常中获得的经验.

也希望大家能继续关注我的博客http://laoliu.pro

 

原文链接:http://laoliu.pro/php/6.html

0
1
分享到:
评论

相关推荐

    让whoops帮我们告别ThinkPHP6的异常页面

    传统的ThinkPHP6异常页面通常只显示异常类名和简单描述,而在使用whoops后,我们可以得到一个包含错误源代码、错误调用堆栈追踪以及其他调试信息的详细页面。 在开始集成之前,需要确保ThinkPHP6项目使用Composer...

    ThinkPHP6.pdf

    Thinkphp6入门到实战

    thinkphp6框架下载

    总的来说,ThinkPHP6框架提供了全面的Web应用开发解决方案,从依赖管理、项目构建到应用逻辑实现,都有一套完善的机制。开发者可以通过熟练掌握这些知识点,快速、高效地开发出高质量的PHP应用。

    thinkPHP6源码.zip

    在`thinkPHP6源码.zip`压缩包中,包含的主要文件名为`tp6`,这可能是指整个框架的源代码目录。 以下是对ThinkPHP6框架的关键知识点的详细说明: 1. **MVC模式**:ThinkPHP6采用了Model-View-Controller(MVC)架构...

    ThinkPHP5 自定义配置页面(静态文件)

    在本教程中,我们将深入探讨如何在ThinkPHP5框架中自定义配置页面,特别是静态文件的设置。首先,我们需要理解ThinkPHP5是一个基于MVC模式的轻量级PHP开发框架,它提供了丰富的功能和灵活的架构,使得开发者可以快速...

    Thinkphp6完整资源包下载

    这个"Thinkphp6完整资源包下载"提供了ThinkPHP6.0.5版本的所有相关组件,包括但不限于核心框架、常用插件等,对于不习惯或者不方便使用Composer进行依赖管理的用户来说,这是一个非常实用的选择。 `.example.env` ...

    thinkPHP6简单抽奖系统

    开始项目前,我们需要安装ThinkPHP6,通过Composer来管理依赖。在命令行中运行`composer create-project topthink/think <项目名>`,创建一个新的ThinkPHP6项目。接着,设置好项目的目录结构,包括公共、控制器、...

    thinkPHP6接口编写示例

    在本示例中,我们将深入探讨`thinkPHP6`框架如何用于编写接口,特别是与小程序商城和后台管理系统相关的接口设计。`thinkPHP6`是一款基于`Swoole`的高性能PHP框架,它提供了丰富的功能和优秀的性能,适用于构建API、...

    thinkphp6境外商城源码

    《基于ThinkPHP6的境外商城源码解析与应用》 ThinkPHP6,作为国内流行的开源PHP框架,以其高效、简洁的特性受到了广大开发者们的青睐。本篇将详细解析一款基于ThinkPHP6构建的境外商城源码,探讨其设计思想、核心...

    thinkphp6 稳定版源码压缩包下载

    ThinkPHP6是该框架的一个重大升级,它引入了许多新特性,旨在提升开发效率和代码质量。在这个版本中,开发者可以体验到更加现代化、规范化的PHP开发环境。 【描述】中提到的"10月24号发布的最新稳定版thinkphp6",...

    thinkphp6使用workerman websocket连接

    本文将深入探讨在ThinkPHP6框架中如何使用Workerman库来实现WebSocket连接,以及相关的技术要点。 首先,`ThinkPHP6` 是一个基于 PHP7 开发的轻量级且强大的国产PHP框架,其核心设计理念是“简洁、实用、快速”。它...

    Thinkphp6实现队列代码

    ThinkPHP6队列组件允许设置最大尝试次数和异常处理回调。 7. **监控队列状态**:为了了解队列任务的运行情况,你可以使用第三方工具(如Supervisor、RabbitMQ管理界面等)或者自定义日志记录,监控任务执行进度、...

    thinkphp6.rar

    首先,我们要了解ThinkPHP6的核心特性。这个版本的ThinkPHP引入了更多的现代化编程理念,如严格模式、注解驱动、中间件等,使得代码更加规范,提高了可维护性。其中,严格模式强化了类型约束,增强了错误处理机制,...

    基于ThinkPHP6的RBAC的后台管理系统源码, UI使用layUI

    《基于ThinkPHP6的RBAC后台管理系统与LayUI界面详解》 在现代Web开发中,构建高效、安全且易维护的后台管理系统是至关重要的。本文将深入探讨一个基于ThinkPHP6框架和LayUI前端库实现的角色权限控制(Role-Based ...

    Thinkphp6 redis队列 消息事件 gatewayworker聊天打通版

    关于`queue队列`,在`Thinkphp6`中,我们可以使用内置的队列服务来异步处理耗时的任务,比如发送邮件、执行数据分析等。这不仅可以提高系统的响应速度,还能避免因单一任务阻塞而影响整个应用的性能。`Redis`作为...

    thinkphp6文件写入漏洞

    标题中的“ThinkPHP6文件写入漏洞”是一个关于网络安全的具体问题,主要涉及到的是ThinkPHP6框架在处理文件操作时可能出现的安全隐患。ThinkPHP是广泛应用于中国的一个开源PHP框架,其最新版本6.0在设计和实现过程中...

    thinkphp6 RESTful API开发

    thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094

    thinkphp6适配人大金仓

    总结起来,"thinkphp6适配人大金仓"涉及的关键知识点包括:ThinkPHP6框架的数据库配置、PDO连接方式、数据库操作API、异常处理、模型与表结构映射、以及数据库迁移。通过理解和掌握这些内容,你可以顺利地在ThinkPHP...

    ThinkPHP中自定义错误页面和提示页面实例

    在ThinkPHP框架中,自定义错误页面和提示页面是提高用户体验和系统安全性的重要步骤。当程序发生错误或者需要向用户显示特定提示信息时,自定义的页面可以提供更友好的界面,而不是显示默认的PHP错误信息,这有助于...

Global site tag (gtag.js) - Google Analytics