首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Laravel系列7.2】错误与异常处理

所以,在正式的线上环境中,我们会修改 .env 文件中的 APP_DEBUG 为 false 。这样的话,我们的详细错误信息就不会显示出来了,只会显示一个错误页面。...很明显,对于错误信息的显示就是通过 .env 中的 APP_DEBUG 来控制的,你也可以直接去修改 config/app.php 配置文件中的 debug 配置来指定调试值。...'debug' => (bool)env('APP_DEBUG', false), 报告异常 在框架中,我们所有的异常都是通过 app/Exceptions/Handler.php 这个类来进行处理的...渲染异常 产生了异常之后,我们肯定要有一个显示异常的响应返回回来。对于 Laravel 来说,默认情况下根据不同的 APP_DEBUG 的配置,就可以得到上面两个截图中的不同的响应返回页面。...其实到这里相信大家对于框架的源码已经非常熟悉了,后面的内容在源码分析这一块我们也不会太深入的学习,更多的会以应用为主,毕竟这些附加功能本身就都是集成于整个服务容器和管道应用中的。

2.8K20

记一次 PHP框架 laravel 网站500报错码处理!

网站为 laravel 突然之间 500码报错,不明所以,有点懵,没有任何征兆,也没有任何报错信息,直接500报错显示网页无法访问。...Laravel调试模式是一种特殊的开发模式,可以方便地跟踪应用程序中的错误。当我们开启调试模式时,Laravel将记录所有错误和异常,并将它们呈现给我们,以便我们可以快速解决问题。...要在Laravel中启用调试模式,需要将.env文件中的APP_DEBUG选项设置为true。这样,我们就可以在Web应用程序中捕获和记录所有错误和异常了。...开启调试模式方法 config/app.php 修改 'debug' => env('APP_DEBUG', false), //关闭调试 // 'debug' => env('APP_DEBUG'...根目录环境配置.env 修改 APP_DEBUG=false //关闭调试模式 //APP_DEBUG=true //开启调试模式 经测试,开启调试模式成功,无需重启服务器或者服务。

44260
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ThinkPHP 5.1自定义404界面的配置

    修改 config.app 文件 第一,需要关闭调试模式 // 应用调试模式 'app_debug' => false, 一般在项目的开发过程中,可以设置为”true”,但是项目上线部署后...显示效果 如果是在线下的测试环境,app_debug 开启,同时 exception_tmpl 为前者配置项,只要在控制器中随便写一点错误代码,就会出现500报错,则效果如下: ?...如果是在线上的外网环境,app_debug 关闭,同时 exception_tmpl 为后者配置项,如此一来, 报错页面如下: ?...★ 附录 ♩ 推荐学习 ThinkPHP5 开发文档异常处理 关于thinkphp5手动抛出Http异常时自定义404页面报错的问题 ♪ 动态设置模板 如果针对不同的客户端情况可以动态设置模板,比如类似如下的代码形式...template.view_path','application\\index\\view\\wap\\'); } else { config('template.view_path',''); } ♫ 想了想 想了想,参考的源代码也没啥必要上传的

    1.5K20

    Laravel Ignition 功能全解析

    下面的截图是 Whoops,这是 Laravel 5 中的标准。它比默认的 Symfony 好得多,可以显示堆栈跟踪和一些关于请求的信息。...顶部还有足够的空间显示整个异常页面,不需要额外的单击。我们也只在默认情况下显示应用程序帧,因为这些可能是您感兴趣的帧。 ?...运行解决方案 除了仅仅是建议的解决方案,我们也可以运行它们。想象一下,例如,您忘记设置 app key。这是用 Ignition 展示错误的样子。 ?...当异常被抛出并且 Ignition 接收到异常时,你可以调用自定义 solution provider 为这个异常返回一个或多个可能的解决方案。...例如,您可以创建一个自定义 “堆栈溢出” 解决方案提供程序,它将尝试为给定的异常找到匹配的堆栈溢出结果,并将它们作为解决方案返回。 我们也在 Ignition 自身上使用解决方案提供者。

    3.1K40

    如何在Ubuntu 14.04上使用Ansible部署多个PHP应用程序

    注意:确保我们刚刚添加到顶部的变量声明也不会更改。应该有11个需要更换的www-data实例。 在我们进一步讨论之前,当涉及变量时,有一些事项需要我们注意。...第2步 - 为复杂配置定义嵌套变量 在本节中,我们将介绍复杂配置选项的嵌套变量。 在上一步中,我们设置了一个基本变量。但是,也可以嵌套变量并定义变量列表。...在游戏手册的中间,您应该找到以下两个env任务: - name: set APP_DEBUG=false lineinfile: dest=/var/www/laravel/.env regexp=...'^APP_DEBUG=' line=APP_DEBUG=false ​ - name: set APP_ENV=production lineinfile: dest=/var/www/laravel...它应该如下所示: - name: set APP_DEBUG=false lineinfile: dest=/var/www/{{ item.name }}/.env regexp='^APP_DEBUG

    8.7K00

    Laravel源码解析之Cookie

    既 cookie函数在参数 name为空时返回一个 CookieJar对象,否则调用 CookieJar的 make方法返回一个 \Symfony\Component\HttpFoundation\Cookie...返回响应时发生的,在 Laravel的 public/index.php里: $response->send(); Laravel的 Response继承自Symfony的 Response, send...send方法里发送响应头时将Cookie数据设置到了Http响应首部的 Set-Cookie字段里,这样当响应发送给浏览器后浏览器就能保存这些Cookie数据了。...\EncryptCookies是Laravel web中间件组里的一个中间件,如果想让客户端的Javascript程序能够读Laravel设置的Cookie则需要在 App\Http\Middleware...Laravel中Cookie模块大致的实现原理就梳理完了,希望大家看了我的源码分析后能够清楚Laravel Cookie实现的基本流程这样在遇到困惑或者无法通过文档找到解决方案时可以通过阅读源码看看它的实现机制再相应的设计解决方案

    2.4K50

    如何在Ubuntu 14.04上使用Ansible部署基本PHP应用程序

    介绍 本教程介绍使用Ansible配置基本PHP应用程序的过程。本教程结束时的目标是让您新Web服务器为基本的PHP应用程序提供服务,而无需在目标腾讯CVM上运行单个SSH连接或手动命令。...该composer create-project会再次运行,并在Laravel的情况下,这意味着一个新的APP_KEY。所以我们想要的是将该任务设置为仅在新克隆之后运行。...注意: Ansible composer模块的某些版本似乎存在错误,它可能会输出OK而不是Changed,因为它忽略了即使没有安装依赖项也会执行脚本的情况。 打开php.yml文件进行编辑。...=false lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false - name...=false lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false - name

    5.9K00

    怎样选择适合自己php框架

    即使使用原生的PHP也能用来开发任何的应用,但是当前的开发规范要求使用工具和时间管理的技巧来满足市场的需要。...很多的流行项目包括Drupal和phpBB也使用了Symfony框架。实际上目前最流行的框架Laravel也是建立在Symfony上。...即便有对哪个框架最适合开发复杂项目有争议,Symfony相对于其他框架显示出了卓越的复杂处理能力 Yii也使用组件但是不像Symfony一样模块化。...社交网络是实时事件应用的首选例子,我们的一个明星的产品-jadson使用yii2建了一个移动社交网络,当初我们为编写高性能的应用而选择一个最好的框架时。Yii作为最快的PHP框架而凸显出来。...Laravel的性能是一个颇有争议的问题。它是最慢的,但这有关系吗?你会找到在线资源去加速它的性能,包括GitHub上的指南让你的laravel应用变得更快。

    4.7K20

    PHP之内置web服务器

    比如 Laravel 和 Symfony。 Laravel 在Laravel中的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...实现的命令是: php artisan serve 我们可以看一下相关代码: 具体的文件路径为:vendor/laravel/framework/src/Illuminate/Foundation/Console...Symfony 如果你在使用 Symfony 框架话,发现Symfony有一个组件叫做web-server-bundle,这个组件的作用跟Laravel相同,也是不借助web服务器,实现通过浏览器访问应用程序...而子进程则返回的PID为0, // 如果失败,则子进程不会创建,并且父进程会返回的pid为-1。...里面有一个问题就是使用pcntl_fork, 该扩展在Windows中是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序.

    3.1K10

    使用 Laravel 制定 MySQL 数据库备份计划任务

    这里我们的命令命名为 BackupDatabase。当创建完你的命令后,Laravel 会自动的将命令注册到系统中。你需要做的,仅仅是去定义命令的签名(signature)。...但现在的问题时,如何管理调度器自身。这个有点像鸡生蛋蛋生鸡的问题,但是相信我,没有这么复杂。...不过,我们需要设置运行 php artisan schedule:run 命令的时间。如果你使用了 Laravel Forge,那么可以很轻易的创建定时任务。...如果准备好了,调度器将每次在适当的时候运行,并触发所有要执行的命令。 总结 很高兴; 我们可以提供轻量级的解决方案,而不依赖于一个更大的包。在这里,我们也可以利用 Laravel 的优势来满足需求。...然后,我们可以快速地为我们的命令设置一个执行周期,而 Laravel 的调度程序将负责剩下的工作。我们可以躺着就把活该干了。

    2.9K10

    PHP之内置web服务器

    比如 Laravel 和 Symfony。 Laravel 在Laravel中的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...实现的命令是: php artisan serve 我们可以看一下相关代码: 具体的文件路径为:vendor/laravel/framework/src/Illuminate/Foundation/Console...Symfony 如果你在使用 Symfony 框架话,发现Symfony有一个组件叫做web-server-bundle,这个组件的作用跟Laravel相同,也是不借助web服务器,实现通过浏览器访问应用程序...而子进程则返回的PID为0, // 如果失败,则子进程不会创建,并且父进程会返回的pid为-1。...里面有一个问题就是使用pcntl_fork, 该扩展在Windows中是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序.

    3.7K30

    Laravel源码解析之Response

    之前两篇文章分别讲了Laravel的控制器和Request对象,在讲Request对象的那一节我们看了Request对象是如何被创建出来的以及它支持的方法都定义在哪里,讲控制器时我们详细地描述了如何找到...runRouteWithinStack方法里是最终执行路由处理程序(控制器方法或者闭包处理程序)的地方,通过上面的代码我们也可以看到执行的结果会传递给 Router的 prepareResponse方法...响应的定义 通过 prepareResponse中的逻辑可以看到,无论路由执行结果返回的是什么值最终都会被Laravel转换为成一个Response对象,而这些对象都是Symfony\Component...从这里也就能看出来跟Request一样Laravel的Response也是依赖Symfony框架的 HttpFoundation组件来实现的。...,把之前设置好的那些headers设置到HTTP响应的首部字段里,Content会echo后被设置到HTTP响应的主体实体中。

    1.4K40

    Laravel 5.0 之自定义错误页面

    本文译自 Matt Stauffer 的系列文章. ---- 在以往版本的 Laravel 中,假如你想自定义错误页面——比如当用户访问不存在的页面时显示一张猫的 GIF 动画图片——你可能会通过 Google...>>直达解决方案 源代码解析 在新版本的 Laravel 中,所以处理自定义错误和异常的代码都移到了 app/Exceptions/Handler.php 里。...但阅读代码时你可能发现了,默认是这样处理的: /** * Render an exception into an HTTP response....{httpStatusCode} 的视图,它就会直接显示该视图(并且传入一些必要的信息)。 如何实现自定义 # 根据前文的分析,如果我们创建了一个名为 "errors....{errorStatusCode}" 的视图,当对应的异常码出现时,系统就会自动显示这个视图。 那么我们要做的事情就太简单了。

    1.4K50

    Laravel Exceptions——异常与错误处理

    本文会详细的介绍 laravel 异常处理的源码。 PHP 异常处理 本章节参考 PHP 错误异常处理详解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。...当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切换到预定义的异常处理器函数 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本 PHP...而在这些 catch 内,又可以抛出新的异常。 异常的抛出 当一个异常被抛出时,其后的代码将不会继续执行,PHP 会尝试查找匹配的 catch 代码块。...当对象要输出字符串的时候,可以重载 __toString() 并自定义输出的样式。...可以这样理解调用条件: 当页面被用户强制停止时 当程序代码运行超时时 当PHP代码执行完成时,代码执行存在异常和错误、警告 我们前面说过,set_error_handler 能够捕捉的错误类型有限,很多致命错误例如解析错误等都无法捕捉

    2K30

    Laravel Exceptions——异常与错误处理「建议收藏」

    本文会详细的介绍 laravel 异常处理的源码。 PHP 异常处理 本章节参考 PHP 错误异常处理详解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。...当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切换到预定义的异常处理器函数 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本...而在这些 catch 内,又可以抛出新的异常。 异常的抛出 当一个异常被抛出时,其后的代码将不会继续执行,PHP 会尝试查找匹配的 catch 代码块。...当对象要输出字符串的时候,可以重载 __toString() 并自定义输出的样式。...可以这样理解调用条件: 当页面被用户强制停止时 当程序代码运行超时时 当PHP代码执行完成时,代码执行存在异常和错误、警告 我们前面说过,set_error_handler 能够捕捉的错误类型有限

    2.9K30

    如何选择PHP框架?

    Symfony可以用来快速开发复杂的项目。即使有争议说哪一个框架更有利于复杂的项目,Symfony相比其他框架,具有很出色处理复杂事物的能力。Yii也使用组件,但它并不是symfony那样的模块化。...安装后,Yii为你提供了一个Web应用程序和一个基本模板。Symfony 2还提供了一个演示程序来开始工作。 laravel也可以通过使用Composer创建项目或Laravel安装器来快速安装。...每一个框架支持的数据库如表1所示。 ? 社区和资源 对一个开源框架的寿命预测要看它的社区优势。三个框架都有稳固的社区,虽然symfony的可能会更成熟一点。...说到学习材料和文件,laravel最突出,虽然Symfony和Yii也不逊色: Laravel 文档 Syfony文档(3.0) Yii文档 扩展性 框架是可以使用扩展或包来扩展的结构,提高了它们的功能和范围...年最流行的框架 为设计者提供支持包管理 出色完成单元测试 提供丰富的包,用于扩展框架功能 具有一个出色的社区,提供丰富的学习资源 结束语 在Symfony 、Laravel和Yii三者较量中,这三个PHP

    7.8K90

    深度挖掘 Laravel 生命周期

    Laravel 会依据 HTTP 请求的运行环境的不同,将请求发送至相应的内核: HTTP 内核 或 Console 内核。...2.2.3 注册异常处理 项目的异常处理由 App\Exceptions\Handler::class 类完成,这边也不做深入的讲解。...capture() 方法内部通过 Symfony 实例创建一个 Laravel 请求实例。...在开始前我们需要知道在 Laravel 中有个「中间件」 的概念,即使你还不知道,也没关系,仅需知道它的功能是在处理请求操作之前,对请求进行过滤处理即可,仅当请求符合「中间件」的验证规则时才会继续执行后续处理...三 总结 在 「创建 Laravel 应用实例」时不仅会注册项目基础服务、注册项目服务提供者别名、注册目录路径等在内的一系列注册工作;还会绑定 HTTP 内核及 Console 内核到 APP 容器,

    7.4K20

    Laravel源码解析之Console内核

    (shell脚本里其实也是一样,会通过shell函数getopts来解析各种格式的命令行参数输入),同样地Laravel使用了 Symfony\Component\Console\Output对象来抽象化命令行的标准输出...HTTP内核中定义的引导程序一样, 都是应用在初始化阶段要进行的环境变量、配置文件加载、注册异常处理器、设置Console请求、注册应用中的服务容器、Facade和启动服务。...其中设置Console请求是唯一区别于HTTP内核的一个引导程序。...执行命令类的 run方法来完成任务处理并返回状态码。 和命令行脚本的规范一样,如果执行命令任务程序成功会返回0, 抛出异常退出则返回1。...结束应用 执行完命令程序返回状态码后, 在 artisan中会直接通过 exit($status)函数输出状态码并结束PHP进程,接下来shell进程会根据返回的状态码是否为0来判断脚本命令是否执行成功

    1.8K20
    领券