不是没有严重违反框架的原则(我会告诉你如何做下面的,如果你仍然有兴趣)。

有一些事情使得难以完成。很容易解决默认错误和异常处理程序

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错误处理程序相关推荐

  1. 微信小程序报错百度地图API 报错 “APP 服务被禁用“

    最近开发微信小程序时,想使用百度地图制作定位功能,结果一直报错"APP服务被禁用",查了好多资料都不行,改成服务端也不行,终于,我在参考了以下这位大佬的博客之后成功用上了百度地图. ...

  2. win10防火墙_Win10端,iCloud报错:鉴定过程中发生错误

    Win10端,iCloud报错:鉴定过程中发生错误 首先,如果iCloud中有重要.未备份.未上传.未同步数据的话及时进行备份,可以直接在win10端进行备份.备份!备份!备份! 其次,看看新闻,是不 ...

  3. 已解决-MacBook重装系统报错:准备安装时发生错误,请尝试重新运行此程序

    我是月球挖掘机,今天重新安装了下macbook air的系统,用联网恢复的方式安装的时候,结果总是报错:准备安装时发生错误,请尝试重新运行此程序.网上找了方法用了还是不行,最后发现自己的时间虽然按照设 ...

  4. 刷机后mi android不动,小米MIflash平台刷机报错问题解决方案小米刷机错误解决方法...

    小米MIflash平台刷机报错问题解决方案小米刷机错误解决方法,如果你不会就看看刷机帮小编是怎么来解决的吧,相信这也是你常遇到的问题. [1.未指定错误(device ls locked)] 小米MI ...

  5. VS2017调试报错:当前页面的脚本发生错误

    vs2017更新到15.7.5版本,然后调试项目就报错:当前页面的脚本发生错误 如下图: 原因: 本人电脑是win7系统,IE浏览器是IE9,所有版本太低了,除非是升级都11,除了升级,还有什么办法呢 ...

  6. VS2019附加到Unity报错 未能完成操作,未指定的错误

    问题:Visual Studio2019 附加到Unity 报错未能完成操作,未指定的错误.编译也没有失败都成功了. 解决方法:在Unity工程中看是不是生成了.vsconfig文件,把这个删除后,再 ...

  7. php数据库报错1046怎么解决,DZ报错MySQL Query Error Errno:1046错误的解决办法

    这篇文章主要为大家详细介绍了DZ报错MySQL Query Error Errno:1046错误的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. DZ报 ...

  8. jaxb报错_JAXB做错了; 尝试Xembly

    jaxb报错 JAXB是一项具有10年历史的Java技术,它使我们能够将Java对象转换为XML文档(编组)和返回(取消编组). 我认为这项技术基于setter和getter,并且通过将对象转换为被动 ...

  9. windows共享文件夹报错:登录失败: 禁用当前的账户 解决办法

    在虚拟机中使用共享文件夹共享文件时报错 通过查找资料可知 访问共享的时候,会默认以当前账户的身份去验证,因此账户密码不能通过验证,进而报错 解决办法 使用net use命令登录,而后访问共享文件夹 n ...

最新文章

  1. oracle cdc 提交顺序,Oracle CDC部署流程
  2. 深入浅出WPF——x:Class详解
  3. 人工智能会被赋予人性么?
  4. git版本控制工具(二)----本地版本库的常用操作
  5. 智能外呼系统相关资料总结
  6. 反射根据每一列的列名获取List T 中的列值
  7. 手把手,快速搭建 Cocos2d-HTML5 开发调试环境
  8. 2016-2017-2(点集拓扑56, 点集拓扑56)
  9. visual foxpro c语言教程,VFP简单初级入门教程超好.pdf
  10. webshell及木马详解
  11. python——xlwt
  12. oracle库导出命令,Oracle数据库导出、导入命令
  13. C#向一个Word文件中插入文字与图片
  14. linux c 操作word文档,C and Word and linux 总结.doc
  15. 83岁清华奶奶,62岁 IT 大爷被阿里40万年薪争抢,你大妈始终是你大妈,你大爷永远是你大爷!...
  16. fnv1 java_笔记本热键驱动_笔记本万能fn键驱动 v1.1 通用版-126g驱动网
  17. Linux工具篇 | Ubuntu安装string命令
  18. CSS,font-family,好看,常用,中文,字体(更新中)
  19. IT职场求生法则(3)- 部门经理及副总适用法则
  20. 设计模式之单例设计模式初步

热门文章

  1. python网络编程:UDP方式传输数据
  2. C++ R“()“ 源码转译
  3. 虚拟机 Linux ubuntu16.04 对 windows 设置共享文件夹教程(samba)(ubuntu16.04换源【更换下载源】【更换源】【更新源】)(如果连不上需要开SSH服务)
  4. visual studio c/c++报错:向“printf”传递了额外参数: _Param_(2) 未由格式字符串使用
  5. Intel Realsense D435 通过识别目标的像素坐标和深度值(使用内参intrinsics)获取目标点的真实坐标
  6. Edward Gaming, the Champion 字符串,模拟(2021.11.沈阳)
  7. python镜像下载包_python包详解
  8. 树莓派4b控制机械手臂_Raspberry Pi
  9. php.inf文件在哪里,php和phpinfphpinfoo
  10. c#控制台应用程序,如何实现隐藏DOS窗口