禁止php 报错怎么做,php – 禁用Laravel错误处理程序
不是没有严重违反框架的原则(我会告诉你如何做下面的,如果你仍然有兴趣)。
有一些事情使得难以完成。很容易解决默认错误和异常处理程序
set_error_handler(null);
set_exception_handler(null);
但是这会给你带来两大障碍。
第一个是Laravel注册一个关机处理程序作为其引导的一部分,这个关闭功能将查找最后一个错误,如果是一个致命的错误,手动调用异常处理代码。有no easy way to un-register a shutdown function。
第二个是,主Laravel应用程序处理程序看起来像这样
#File: vendor/laravel/framework/src/Illuminate/Foundation/Application.php
public function handle(SymfonyRequest $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
{
try
{
$this->refreshRequest($request = Request::createFromBase($request));
$this->boot();
return $this->dispatch($request);
}
catch (\Exception $e)
{
if ($this->runningUnitTests()) throw $e;
return $this['exception']->handleException($e);
}
}
那就是 – 如果应用程序代码抛出一个异常,Laravel在这里捕获它,并手动调用异常的handleException方法(触发标准的Laravel异常处理)。没有办法让PHP处理在您的应用程序中发生的致命异常,Laravel阻止了从未发生过的事情。
我告诉你如何做你想要的部分
所有这一切意味着我们需要用我们自己的Laravel应用程序来代替。在bootstrap / start.php中,有以下行
#File: bootstrap/start.php
$app = new Illuminate\Foundation\Application;
将其替换为以下内容
ini_set('display_errors','1');
class MyApplication extends Illuminate\Foundation\Application
{
function startExceptionHandling()
{
//do nothing
}
public function handle(Symfony\Component\HttpFoundation\Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
{
$this->refreshRequest($request = Request::createFromBase($request));
$this->boot();
return $this->dispatch($request);
}
}
$app = new MyApplication;
我们正在做的第一件事是将PHP的显示错误ini设置为1.这样可以确保错误输出到浏览器。
接下来,我们正在定义一个扩展真实应用程序类的新应用程序类。
最后,我们用我们的类实例化的对象来替换真正的Laravel $ app对象。
在我们的应用程序类本身,我们空白startExceptionHandling。这样可以防止Laravel设置自定义异常,错误和关闭回调。我们还定义了从try / catch中删除应用程序启动/调度的句柄。这是该过程中最脆弱的部分,根据您的Laravel版本可能会有所不同。
最终警告
如果手柄方法在未来的版本Laravel中发生变化,这将会破裂。
如果自定义包依赖于添加自定义异常处理程序,它们可能会中断。
我建议远离这一切,除了临时调试技术之外。
禁止php 报错怎么做,php – 禁用Laravel错误处理程序相关推荐
- 微信小程序报错百度地图API 报错 “APP 服务被禁用“
最近开发微信小程序时,想使用百度地图制作定位功能,结果一直报错"APP服务被禁用",查了好多资料都不行,改成服务端也不行,终于,我在参考了以下这位大佬的博客之后成功用上了百度地图. ...
- win10防火墙_Win10端,iCloud报错:鉴定过程中发生错误
Win10端,iCloud报错:鉴定过程中发生错误 首先,如果iCloud中有重要.未备份.未上传.未同步数据的话及时进行备份,可以直接在win10端进行备份.备份!备份!备份! 其次,看看新闻,是不 ...
- 已解决-MacBook重装系统报错:准备安装时发生错误,请尝试重新运行此程序
我是月球挖掘机,今天重新安装了下macbook air的系统,用联网恢复的方式安装的时候,结果总是报错:准备安装时发生错误,请尝试重新运行此程序.网上找了方法用了还是不行,最后发现自己的时间虽然按照设 ...
- 刷机后mi android不动,小米MIflash平台刷机报错问题解决方案小米刷机错误解决方法...
小米MIflash平台刷机报错问题解决方案小米刷机错误解决方法,如果你不会就看看刷机帮小编是怎么来解决的吧,相信这也是你常遇到的问题. [1.未指定错误(device ls locked)] 小米MI ...
- VS2017调试报错:当前页面的脚本发生错误
vs2017更新到15.7.5版本,然后调试项目就报错:当前页面的脚本发生错误 如下图: 原因: 本人电脑是win7系统,IE浏览器是IE9,所有版本太低了,除非是升级都11,除了升级,还有什么办法呢 ...
- VS2019附加到Unity报错 未能完成操作,未指定的错误
问题:Visual Studio2019 附加到Unity 报错未能完成操作,未指定的错误.编译也没有失败都成功了. 解决方法:在Unity工程中看是不是生成了.vsconfig文件,把这个删除后,再 ...
- php数据库报错1046怎么解决,DZ报错MySQL Query Error Errno:1046错误的解决办法
这篇文章主要为大家详细介绍了DZ报错MySQL Query Error Errno:1046错误的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. DZ报 ...
- jaxb报错_JAXB做错了; 尝试Xembly
jaxb报错 JAXB是一项具有10年历史的Java技术,它使我们能够将Java对象转换为XML文档(编组)和返回(取消编组). 我认为这项技术基于setter和getter,并且通过将对象转换为被动 ...
- windows共享文件夹报错:登录失败: 禁用当前的账户 解决办法
在虚拟机中使用共享文件夹共享文件时报错 通过查找资料可知 访问共享的时候,会默认以当前账户的身份去验证,因此账户密码不能通过验证,进而报错 解决办法 使用net use命令登录,而后访问共享文件夹 n ...
最新文章
- ios面试数据结构与算法
- 文本和代码文件助手软件
- 赛尔号什么时候支持html5,赛尔号三全能时代即将来临 你准备好了吗
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
- 项目:如何快速实现电脑间大文件(lichee.tar.gz)互传?
- jQuery-$(document).ready和$(window).load有什么区别?
- linux 低功耗模式,stm32的低功耗模式:
- html 文本框 获取焦点事件,JS的文本输入框获得焦点与失去焦点的事件
- UNI-APP实现扫描二维码
- Shenyu网关本地打docker镜像包
- 微型计算机基础理论——微处理器工作概述
- 视频码率与分辨率的参考表
- 戴尔3080计算机重装系统步骤,终于发现戴尔笔记本重装系统的方法
- i7 8700k 安装linux,Intel i7 8700K核显UHD620安装黑苹果仿冒HD620方法
- SkyWalking8.7源码解析(三):静态方法插桩、构造器和实例方法插桩、插件拦截器加载流程、JDK类库插件工作原理
- 软件测试架构师知识能力模型
- 1.稀缺数组java实现
- html5四季特点,美国一年四季天气特点介绍
- Axure的动态面板
- linux pscp 上传_详解使用pscp命令Linux文件上传与下载
热门文章
- Python中 __init__.py的作用
- Php中方法作用域,PHP 函数(下):匿名函数和作用域
- 什么是分镜头剧本?(分镜头剧本是将文字转换成立体视听形象的中间媒介。主要任务是根据解说词和电视文学脚本来设计相应画面,配置音乐音响,把握片子的节奏和风格等。)
- python 相对路径
- window如何将CMD以管理员身份添加到右键菜单?
- 静态页面cors跨域问题
- 元气骑士里的超级计算机,元气骑士:本以为“素颜相机”够火,直到看到它,一秒笑出猪叫声...
- three.js两个点给线条加宽度_用感性的方式练习线条,凤尾花21,彩铅手绘教程...
- php内核总结_深入理解PHP内核(一)
- PKCS5Padding与PKCS7Padding的区别