在這篇博客文章中,我將告訴你關于 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 為這個特定的路由接收了什么信息。
在路由參數之后,我們還將向您顯示在此請求中使用的中間件列表。
接下來是“視圖”部分。如果異常發生在視圖中,我們將在這里顯示視圖名稱。甚至:我們還將給出傳遞給視圖的所有數據的列表。
用戶選項卡
"用戶" 選項卡包含有使用應用程序的用戶和瀏覽器的