禁止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 ...
最新文章
- oracle cdc 提交顺序,Oracle CDC部署流程
- 深入浅出WPF——x:Class详解
- 人工智能会被赋予人性么?
- git版本控制工具(二)----本地版本库的常用操作
- 智能外呼系统相关资料总结
- 反射根据每一列的列名获取List T 中的列值
- 手把手,快速搭建 Cocos2d-HTML5 开发调试环境
- 2016-2017-2(点集拓扑56, 点集拓扑56)
- visual foxpro c语言教程,VFP简单初级入门教程超好.pdf
- webshell及木马详解
- python——xlwt
- oracle库导出命令,Oracle数据库导出、导入命令
- C#向一个Word文件中插入文字与图片
- linux c 操作word文档,C and Word and linux 总结.doc
- 83岁清华奶奶,62岁 IT 大爷被阿里40万年薪争抢,你大妈始终是你大妈,你大爷永远是你大爷!...
- fnv1 java_笔记本热键驱动_笔记本万能fn键驱动 v1.1 通用版-126g驱动网
- Linux工具篇 | Ubuntu安装string命令
- CSS,font-family,好看,常用,中文,字体(更新中)
- IT职场求生法则(3)- 部门经理及副总适用法则
- 设计模式之单例设计模式初步
热门文章
- python网络编程:UDP方式传输数据
- C++ R“()“ 源码转译
- 虚拟机 Linux ubuntu16.04 对 windows 设置共享文件夹教程(samba)(ubuntu16.04换源【更换下载源】【更换源】【更新源】)(如果连不上需要开SSH服务)
- visual studio c/c++报错:向“printf”传递了额外参数: _Param_(2) 未由格式字符串使用
- Intel Realsense D435 通过识别目标的像素坐标和深度值(使用内参intrinsics)获取目标点的真实坐标
- Edward Gaming, the Champion 字符串,模拟(2021.11.沈阳)
- python镜像下载包_python包详解
- 树莓派4b控制机械手臂_Raspberry Pi
- php.inf文件在哪里,php和phpinfphpinfoo
- c#控制台应用程序,如何实现隐藏DOS窗口