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

告别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)架构...

    Thinkphp6完整资源包下载

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

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

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

    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...

    基于thinkphp6的后台权限管理源码

    在ThinkPHP6中,我们可以利用其内置的Auth验证类来实现RBAC。这个类提供了基本的权限判断和权限控制功能,包括对URL的访问控制和对操作的权限判断。首先,我们需要定义角色、权限和用户的关系,这通常可以通过数据库...

Global site tag (gtag.js) - Google Analytics