Laravel Telescope入門教程(上)

Laravel Telescope入門教程

        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)請求

(HTTP)請求

       此tab容許您查看進入應用程序的全部HTTP請求。您將可以查看全部HTTP請求以及有關每一個請求的各類有用信息。

(HTTP)請求

(HTTP)請求

(HTTP)請求

       每一個請求頁面還顯示與其餘watchers有關此請求的任何數據; 例如:全部數據庫查詢以及它們花了多長時間;哪一個用戶已針對此請求進行身份驗證等等。

(HTTP)請求

命令

命令

       命令選項卡列出已運行的全部命令及其退出代碼。進去後,您還能夠查看全部參數、選項和相關項目。

命令 

時間表

       列出已運行的計劃任務。在每一個任務的詳細信息頁面上,查看他們的全部計劃信息,例如他們的cron計劃(例如* * * * *)。

時間表

做業(Jobs)

做業(Jobs)

       「Jobs」選項卡列出已運行或所有正在運行的全部做業。它與Horizon相似,但Horizon僅限Redis。不只僅是一個UI,它還與隊列工做者的運行方式進行交互。另外一方面,Telescope只是一個UI,但它也適用於全部隊列驅動程序。

做業(Jobs)

       在做業列表頁面上,您能看到做業名稱、運行的隊列和鏈接、狀態以及發生時間。

       在做業詳情頁面上,您將可以看到全部這些數據以及:主機名、做業的徹底限定類名、鏈接、隊列、嘗試次數、超時、標籤。

標籤(Tags)

       若是有用戶附加,則使用附加的Eloquent模型(例如App \ Video:1)自動標記做業。

       標籤(Tags)

       諸如請求、命令等項目將由Telescope自動分配標籤(例如,若是它是用戶 的請求,它將自動分配標籤Auth:1; 您能夠單擊該標籤,它將僅過濾他們的標記項,等等)

       就像HTTP請求同樣,您能夠看到與此做業相關的各類信息,例如它觸發的數據庫查詢,此做業啓動的做業以及它生成的任何日誌。

       若是您啓動閉包(closure)而不是看到App \ Jobs \ RenderVideo,您會看到Closure(web.php:43)顯示它的定義位置。

       新隊列的閉包。

       Taylor爲一個新庫作出了貢獻,帶回了隊列的閉包,Laravel曾經擁有這些閉包,但不久前就拋棄了。使用這些貢獻和這個新庫,若是你用模型將它導入到閉包中,它將存儲模型ID,而不是整個模型,這要好得多(以及已經有的隊列類)。因此,隊列閉包又回來了!

 
 

       此次將用哈希序列化閉包; 這是由於有了排隊閉包,有人能夠事先修改你的隊列事件,以便經過它注入任意PHP,這是很差的!如今它哈希序列化了,並再次檢查你的代碼。

       Closure被序列化爲一個長字符串,其中包含整個代碼及其散列(使用相似於簽名URL的代碼)。

例外狀況

例外狀況

       記錄全部異常並容許您檢查每一個異常。這將向您顯示與其餘選項卡相似的數據,如主機名、類型、請求、標籤、通過身份驗證的用戶。

例外狀況

       可是你也會看到代碼中的位置,突出顯示,上面和下面有幾行代碼;並且你也會得到完整的堆棧跟蹤。

例外狀況

例外狀況

       您還能夠從引起它的請求中獲取指向異常詳細信息頁面的連接。

       注意:在許多選項卡中,若是您在單個頁面上(例如,給定例外的頁面),您將得到指向生成該頁面的請求頁面的連接。

       若是屢次發生相同的異常,它們將在列表頁面上進行分組,但您仍然能夠深刻查看異常顯示頁面中的各個異常。 

日誌

       「日誌」選項卡顯示基本日誌消息、級別以及全部日誌項的發生時間。

日誌

       當您訪問該我的詳細信息頁面時,在日誌項中,您能夠看到更多信息,包括傳遞給日誌項的任何上下文數據(做爲數組)。

       「比挖掘原始文本文件更好」。

       若是您使用數組將上下文傳遞給日誌項, 能夠查看全部數據,查看觸發它的請求,哪一個用戶觸發了它。「比挖掘原始文本文件好一點。」

日誌

相關文章
相關標籤/搜索