在這篇博客文章中,我將告訴你關(guān)于 Ignition 的一切。
讓我們看看默認(rèn)情況下 PHP 中有什么。在不使用框架的情況下,PHP 提供了這個功能。您只會得到錯誤:沒有堆棧跟蹤、沒有請求或應(yīng)用程序詳情。
Symfony 的錯誤頁面稍微好一些,它向您顯示堆棧跟蹤,但是沒有多大幫助。
下面的截圖是 Whoops,這是 Laravel 5 中的標(biāo)準(zhǔn)。它比默認(rèn)的 Symfony 好得多,可以顯示堆棧跟蹤和一些關(guān)于請求的信息。盡管在 Laravel 中 Whoops 是默認(rèn)值,但它是一個框架無關(guān)的(錯誤收集展示)。它僅僅顯示通用信息。
這是 Ignition 的截圖,我們建立的新的錯誤視圖。因為這是 Laravel 特有的,我們可以做很多很酷的事情。
發(fā)現(xiàn) Ignition
讓我們來探索 Ignition 所有的細(xì)節(jié)。它是開源的,您可以在這里查看代碼(https://github.com/facade/ignition)。
如果視圖中有錯誤,這就是 whoops 顯示它們的方式。注意,異常消息不適合分配的空間。你必須(鼠標(biāo))懸停在它上面才能看完整(信息)。在堆棧跟蹤中,您可以看到使用了編譯后的 Blade 視圖和內(nèi)容。這使得跟蹤哪個 Blade 視圖文件包含錯誤變得困難,并且視圖內(nèi)容本身是不可讀的。
Ignition是一個 Laravel 特定的錯誤頁面。因此,它可以像鉤子一樣,"掛載"到框架中, 用來顯示未編譯的視圖路徑和您的 Blade 視圖。頂部還有足夠的空間顯示整個異常頁面,不需要額外的單擊。我們也只在默認(rèn)情況下顯示應(yīng)用程序幀,因為這些可能是您感興趣的幀。
如果您單擊 stack trace
選項卡右側(cè)文件名旁邊的鉛筆圖標(biāo),我們將在您喜歡的編輯器中自動打開該文件。默認(rèn)情況下是 PhpStorm 。您可以在 ignition
配置文件中將其配置為您最喜歡的編輯器。
注意到右上角的那個小“望遠(yuǎn)鏡”鏈接了嗎?我們只會在您安裝了Laravel Telescope(第一方調(diào)試助手)的情況下顯示。如果你點擊那個鏈接,你將被帶到望遠(yuǎn)鏡內(nèi)發(fā)生錯誤的異常。
黑暗模式
如果我們默認(rèn)的錯誤屏幕太亮了,你會很高興知道我們的錯誤頁面也有一個黑暗模式。
Ignition 選項卡
讓我們探索一下 Ignition
頁面上顯示的選項卡。
「請求」選項卡
在「堆棧跟蹤」選項卡旁邊,您將看到「請求」選項卡。它顯示了您對請求的所有預(yù)期信息。
假設(shè)你有一個路由定義是這樣的::
Route::get('/posts/{post}', function (Post $post) { // });
當(dāng)此路由發(fā)生異常,我們將在 Ignition 中打印 路由參數(shù) post
模型($post
變量),以轉(zhuǎn)化后數(shù)組(toArray
)形式呈現(xiàn)。對于不需要任何綁定的“簡單”路由參數(shù)也是如此。這是一個很好的方法,可以很容易地看到 Laravel 為這個特定的路由接收了什么信息。
在路由參數(shù)之后,我們還將向您顯示在此請求中使用的中間件列表。
接下來是“視圖”部分。如果異常發(fā)生在視圖中,我們將在這里顯示視圖名稱。甚至:我們還將給出傳遞給視圖的所有數(shù)據(jù)的列表。
用戶選項卡
"用戶" 選項卡包含有使用應(yīng)用程序的用戶和瀏覽器的