在这篇博客文章中,我将告诉你关于 Ignition 的一切。
让我们看看默认情况下 PHP 中有什么。在不使用框架的情况下,PHP 提供了这个功能。您只会得到错误:没有堆栈跟踪、没有请求或应用程序详情。
Symfony 的错误页面稍微好一些,它向您显示堆栈跟踪,但是没有多大帮助。
下面的截图是 Whoops,这是 Laravel 5 中的标准。它比默认的 Symfony 好得多,可以显示堆栈跟踪和一些关于请求的信息。尽管在 Laravel 中 Whoops 是默认值,但它是一个框架无关的(错误收集展示)。它仅仅显示通用信息。
这是 Ignition 的截图,我们建立的新的错误视图。因为这是 Laravel 特有的,我们可以做很多很酷的事情。
发现 Ignition
让我们来探索 Ignition 所有的细节。它是开源的,您可以在这里查看代码(https://github.com/facade/ignition)。
如果视图中有错误,这就是 whoops 显示它们的方式。注意,异常消息不适合分配的空间。你必须(鼠标)悬停在它上面才能看完整(信息)。在堆栈跟踪中,您可以看到使用了编译后的 Blade 视图和内容。这使得跟踪哪个 Blade 视图文件包含错误变得困难,并且视图内容本身是不可读的。
Ignition是一个 Laravel 特定的错误页面。因此,它可以像钩子一样,"挂载"到框架中, 用来显示未编译的视图路径和您的 Blade 视图。顶部还有足够的空间显示整个异常页面,不需要额外的单击。我们也只在默认情况下显示应用程序帧,因为这些可能是您感兴趣的帧。
如果您单击 stack trace
选项卡右侧文件名旁边的铅笔图标,我们将在您喜欢的编辑器中自动打开该文件。默认情况下是 PhpStorm 。您可以在 ignition
配置文件中将其配置为您最喜欢的编辑器。
注意到右上角的那个小“望远镜”链接了吗?我们只会在您安装了Laravel Telescope(第一方调试助手)的情况下显示。如果你点击那个链接,你将被带到望远镜内发生错误的异常。
黑暗模式
如果我们默认的错误屏幕太亮了,你会很高兴知道我们的错误页面也有一个黑暗模式。
Ignition 选项卡
让我们探索一下 Ignition
页面上显示的选项卡。
「请求」选项卡
在「堆栈跟踪」选项卡旁边,您将看到「请求」选项卡。它显示了您对请求的所有预期信息。
假设你有一个路由定义是这样的::
Route::get('/posts/{post}', function (Post $post) { // });
当此路由发生异常,我们将在 Ignition 中打印 路由参数 post
模型($post
变量),以转化后数组(toArray
)形式呈现。对于不需要任何绑定的“简单”路由参数也是如此。这是一个很好的方法,可以很容易地看到 Laravel 为这个特定的路由接收了什么信息。
在路由参数之后,我们还将向您显示在此请求中使用的中间件列表。
接下来是“视图”部分。如果异常发生在视图中,我们将在这里显示视图名称。甚至:我们还将给出传递给视图的所有数据的列表。
用户选项卡
"用户" 选项卡包含有使用应用程序的用户和浏览器的