春节期间熟悉了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
相关推荐
传统的ThinkPHP6异常页面通常只显示异常类名和简单描述,而在使用whoops后,我们可以得到一个包含错误源代码、错误调用堆栈追踪以及其他调试信息的详细页面。 在开始集成之前,需要确保ThinkPHP6项目使用Composer...
Thinkphp6入门到实战
总的来说,ThinkPHP6框架提供了全面的Web应用开发解决方案,从依赖管理、项目构建到应用逻辑实现,都有一套完善的机制。开发者可以通过熟练掌握这些知识点,快速、高效地开发出高质量的PHP应用。
在`thinkPHP6源码.zip`压缩包中,包含的主要文件名为`tp6`,这可能是指整个框架的源代码目录。 以下是对ThinkPHP6框架的关键知识点的详细说明: 1. **MVC模式**:ThinkPHP6采用了Model-View-Controller(MVC)架构...
这个"Thinkphp6完整资源包下载"提供了ThinkPHP6.0.5版本的所有相关组件,包括但不限于核心框架、常用插件等,对于不习惯或者不方便使用Composer进行依赖管理的用户来说,这是一个非常实用的选择。 `.example.env` ...
在本教程中,我们将深入探讨如何在ThinkPHP5框架中自定义配置页面,特别是静态文件的设置。首先,我们需要理解ThinkPHP5是一个基于MVC模式的轻量级PHP开发框架,它提供了丰富的功能和灵活的架构,使得开发者可以快速...
开始项目前,我们需要安装ThinkPHP6,通过Composer来管理依赖。在命令行中运行`composer create-project topthink/think <项目名>`,创建一个新的ThinkPHP6项目。接着,设置好项目的目录结构,包括公共、控制器、...
在本示例中,我们将深入探讨`thinkPHP6`框架如何用于编写接口,特别是与小程序商城和后台管理系统相关的接口设计。`thinkPHP6`是一款基于`Swoole`的高性能PHP框架,它提供了丰富的功能和优秀的性能,适用于构建API、...
《基于ThinkPHP6的境外商城源码解析与应用》 ThinkPHP6,作为国内流行的开源PHP框架,以其高效、简洁的特性受到了广大开发者们的青睐。本篇将详细解析一款基于ThinkPHP6构建的境外商城源码,探讨其设计思想、核心...
ThinkPHP6是该框架的一个重大升级,它引入了许多新特性,旨在提升开发效率和代码质量。在这个版本中,开发者可以体验到更加现代化、规范化的PHP开发环境。 【描述】中提到的"10月24号发布的最新稳定版thinkphp6",...
本文将深入探讨在ThinkPHP6框架中如何使用Workerman库来实现WebSocket连接,以及相关的技术要点。 首先,`ThinkPHP6` 是一个基于 PHP7 开发的轻量级且强大的国产PHP框架,其核心设计理念是“简洁、实用、快速”。它...
ThinkPHP6队列组件允许设置最大尝试次数和异常处理回调。 7. **监控队列状态**:为了了解队列任务的运行情况,你可以使用第三方工具(如Supervisor、RabbitMQ管理界面等)或者自定义日志记录,监控任务执行进度、...
首先,我们要了解ThinkPHP6的核心特性。这个版本的ThinkPHP引入了更多的现代化编程理念,如严格模式、注解驱动、中间件等,使得代码更加规范,提高了可维护性。其中,严格模式强化了类型约束,增强了错误处理机制,...
《基于ThinkPHP6的RBAC后台管理系统与LayUI界面详解》 在现代Web开发中,构建高效、安全且易维护的后台管理系统是至关重要的。本文将深入探讨一个基于ThinkPHP6框架和LayUI前端库实现的角色权限控制(Role-Based ...
关于`queue队列`,在`Thinkphp6`中,我们可以使用内置的队列服务来异步处理耗时的任务,比如发送邮件、执行数据分析等。这不仅可以提高系统的响应速度,还能避免因单一任务阻塞而影响整个应用的性能。`Redis`作为...
标题中的“ThinkPHP6文件写入漏洞”是一个关于网络安全的具体问题,主要涉及到的是ThinkPHP6框架在处理文件操作时可能出现的安全隐患。ThinkPHP是广泛应用于中国的一个开源PHP框架,其最新版本6.0在设计和实现过程中...
thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094
总结起来,"thinkphp6适配人大金仓"涉及的关键知识点包括:ThinkPHP6框架的数据库配置、PDO连接方式、数据库操作API、异常处理、模型与表结构映射、以及数据库迁移。通过理解和掌握这些内容,你可以顺利地在ThinkPHP...
在ThinkPHP6中,我们可以利用其内置的Auth验证类来实现RBAC。这个类提供了基本的权限判断和权限控制功能,包括对URL的访问控制和对操作的权限判断。首先,我们需要定义角色、权限和用户的关系,这通常可以通过数据库...