Laravel Telescope是Laravel的新應用型debug助手,由Mohamed Said和Taylor Otwell編寫。它是開源的,在GitHub上免費,並將在下週發佈。php
您將經過Composer將Telescope做爲第三方依賴項引入您的應用程序。web
安裝Telescope後,您將經過訪問應用程序的/ telescope路徑來訪問它。數據庫
Telescope是作什麼的?數組
若是您曾經使用過Clockwork或Laravel Debugbar,認爲它們是功能強大的單機UI。緩存
Telescope由一系列watchers組成,這些watchers「觀察」進入應用程序的每一個請求,不管是來自HTTP請求,來自命令行,來自調度程序仍是來自隊列。閉包
這些watchers捕獲關於這些請求及相關數據的各類信息- 例如數據庫查詢及其執行時間、緩存命中和未命中、事件觸發、郵件發送等等。ide
UI中有用於檢查如下各項的選項卡,每一個選項卡都反映一個「Watcher」:命令行
要求(Requests)debug
命令 (Commands)3d
時間表 (Schedule)
工做 (Jobs)
例外 (Exceptions)
日誌 (Logs)
轉儲 (Dumps)
查詢 (Queries)
模型 (Models)
活動 (Events)
郵件(Mail)
通知 (Notifications)
高速緩存 (Cache)
Redis
Tab/Watchers
讓咱們逐步瀏覽每一個tab讓咱們檢查的內容。每一個tab都顯示一個列表頁面,而後容許您深刻查看任何給定項目的詳細信息頁面。
(HTTP)請求
此tab容許您查看進入應用程序的全部HTTP請求。您將可以查看全部HTTP請求以及有關每一個請求的各類有用信息。
每一個請求頁面還顯示與其餘watchers有關此請求的任何數據; 例如:全部數據庫查詢以及它們花了多長時間;哪一個用戶已針對此請求進行身份驗證等等。
命令
命令選項卡列出已運行的全部命令及其退出代碼。進去後,您還能夠查看全部參數、選項和相關項目。
時間表
列出已運行的計劃任務。在每一個任務的詳細信息頁面上,查看他們的全部計劃信息,例如他們的cron計劃(例如* * * * *)。
做業(Jobs)
「Jobs」選項卡列出已運行或所有正在運行的全部做業。它與Horizon相似,但Horizon僅限Redis。不只僅是一個UI,它還與隊列工做者的運行方式進行交互。另外一方面,Telescope只是一個UI,但它也適用於全部隊列驅動程序。
在做業列表頁面上,您能看到做業名稱、運行的隊列和鏈接、狀態以及發生時間。
在做業詳情頁面上,您將可以看到全部這些數據以及:主機名、做業的徹底限定類名、鏈接、隊列、嘗試次數、超時、標籤。
若是有用戶附加,則使用附加的Eloquent模型(例如App \ Video:1)自動標記做業。
標籤(Tags)
諸如請求、命令等項目將由Telescope自動分配標籤(例如,若是它是用戶 的請求,它將自動分配標籤Auth:1; 您能夠單擊該標籤,它將僅過濾他們的標記項,等等)
就像HTTP請求同樣,您能夠看到與此做業相關的各類信息,例如它觸發的數據庫查詢,此做業啓動的做業以及它生成的任何日誌。
若是您啓動閉包(closure)而不是看到App \ Jobs \ RenderVideo,您會看到Closure(web.php:43)顯示它的定義位置。
新隊列的閉包。
Taylor爲一個新庫作出了貢獻,帶回了隊列的閉包,Laravel曾經擁有這些閉包,但不久前就拋棄了。使用這些貢獻和這個新庫,若是你用模型將它導入到閉包中,它將存儲模型ID,而不是整個模型,這要好得多(以及已經有的隊列類)。因此,隊列閉包又回來了!
此次將用哈希序列化閉包; 這是由於有了排隊閉包,有人能夠事先修改你的隊列事件,以便經過它注入任意PHP,這是很差的!如今它哈希序列化了,並再次檢查你的代碼。
Closure被序列化爲一個長字符串,其中包含整個代碼及其散列(使用相似於簽名URL的代碼)。
例外狀況
記錄全部異常並容許您檢查每一個異常。這將向您顯示與其餘選項卡相似的數據,如主機名、類型、請求、標籤、通過身份驗證的用戶。
可是你也會看到代碼中的位置,突出顯示,上面和下面有幾行代碼;並且你也會得到完整的堆棧跟蹤。
您還能夠從引起它的請求中獲取指向異常詳細信息頁面的連接。
注意:在許多選項卡中,若是您在單個頁面上(例如,給定例外的頁面),您將得到指向生成該頁面的請求頁面的連接。
若是屢次發生相同的異常,它們將在列表頁面上進行分組,但您仍然能夠深刻查看異常顯示頁面中的各個異常。
日誌
「日誌」選項卡顯示基本日誌消息、級別以及全部日誌項的發生時間。
當您訪問該我的詳細信息頁面時,在日誌項中,您能夠看到更多信息,包括傳遞給日誌項的任何上下文數據(做爲數組)。
「比挖掘原始文本文件更好」。
若是您使用數組將上下文傳遞給日誌項, 能夠查看全部數據,查看觸發它的請求,哪一個用戶觸發了它。「比挖掘原始文本文件好一點。」