- Grav 外掛
- Grav - 外掛基礎
- Grav - 外掛教程
- Grav - 事件鉤子
- Grav 管理面板
- Grav - 管理員介紹
- Grav - 管理員儀表盤
- Grav - 配置系統
- Grav - 站點配置
- Grav - 管理面板頁面
- Grav - 頁面編輯器選項
- Grav - 頁面編輯器高階
- Grav 高階
- Grav - 藍圖
- Grav - 效能和快取
- Grav - 除錯和日誌記錄
- Grav - CLI
- Grav - GPM
- Grav - 開發
- Grav - 生命週期
- Grav - YAML 語法
- Grav - 表單
- Grav 託管
- Grav - 虛擬主機
- Grav 故障排除
- Grav - 伺服器錯誤
- Grav - 許可權
- Grav 有用資源
- Grav - 面試問題
- Grav - 快速指南
- Grav - 有用資源
- Grav - 討論
Grav - 事件鉤子
在本章中,我們將學習 Grav 中的事件鉤子。在外掛章節中,您將看到,外掛的邏輯包含在兩種方法中。這些方法是onPluginsInitialized和onPageInitialized;這些方法類似於事件鉤子。要了解更多並控制 Grav 外掛的功能,您需要檢查事件鉤子的可用性。事件鉤子與 Grav 從始至終都有直接關係。您必須瞭解鉤子呼叫的順序以及在這些呼叫時可以使用什麼。
下表列出了在頁面處理過程中啟用的核心 Grav 事件鉤子。
| 序號 | 事件和描述 |
|---|---|
| 1 | onFatalException 如果PHP出現致命異常,您可以隨時觸發此事件。Problem 外掛使用它來管理顯示完整解釋的列表,說明 Grav 為什麼會提供致命錯誤。 |
| 2 | onPluginsInitialized 這是 Grav 中第一個可用的外掛事件。以下物件已按如下所述引入:
|
| 3 | onAssetsInitialized 這表示資源管理器已載入並準備使用和管理。 |
| 4 | onPageNotFound 如果您發現了一個意外頁面,您可以忽略此事件。目前,錯誤外掛用於指定404 錯誤頁面。 |
| 5 | onPageInitialized 這指定了透過URL請求的頁面,該頁面已載入到 Page 物件中。 |
| 6 | onOutputGenerated 這指定了Twig 模板引擎的輸出過程。目前,它只是一個HTML字串。 |
| 7 | onOutputRendered 這是一個輸出過程,傳送到顯示器。 |
| 8 | onShutdown 這是一個新的且功能強大的事件,允許您執行操作。這在 Grav完成處理並且與客戶端的連線關閉後完成。此單獨的操作不需要任何使用者互動,因此會影響效能。它包括使用者跟蹤和作業處理。 |
| 9 | onBeforeDownload 這是一個新事件,傳遞到包含檔案的事件物件中。它允許使用者執行日誌記錄,授予和忽略下載所述檔案的許可權。 |
Twig 事件鉤子
Twig 有自己的事件鉤子集合,如下所述使用。
| 序號 | 事件和描述 |
|---|---|
| 1 | onTwigTemplatePaths 模板路徑的基本位置設定在Twig 物件上。此事件用於新增 Twig 將在其中搜索模板路徑的其他位置。 |
| 2 | onTwiglnitialized 它初始化Twig 模板引擎。 |
| 3 | onTwigExtensions 它指定核心 Twig 擴充套件程式已準備好使用。此事件鉤子允許您新增自己的 Twig 擴充套件程式。 |
| 4 | onTwigPageVariables 此 Twig 過程允許您直接處理頁面,即您可以在頁面的 YAML 標頭中找到process:twig:tru。在這裡,您可以向 Twig 新增任何變數,並且在該過程中應可訪問 Twig。 |
| 5 | onTwigSiteVariables 在此過程中,您將按順序看到 Twig 方法中的完整站點模板。此外,您可以在此過程中向 Twig 新增任何變數。 |
集合事件鉤子
下表列出了一個集合事件鉤子。
| 序號 | 事件和描述 |
|---|---|
| 1 | onCollectionProcessed 在本節中,一旦過程完成,您就可以控制集合。 |
頁面事件鉤子
下表列出了頁面事件鉤子的集合。
| 序號 | 事件和描述 |
|---|---|
| 1 | onBuildPagesInitialized 此事件對於外掛控制內容和快取結果很有用。啟用此事件後,頁面將被回收。當快取過期或需要重新整理時,就會發生這種情況。 |
| 2 | onBlueprintCreated 此事件有助於處理和管理表單。 |
| 3 | onPageContentRaw 在此過程中,當找到頁面時,標頭已固定,但內容未固定。您將看到 Grav 系統中每個頁面都已觸發。如果您已清除快取或正在清除快取,則會發生此事件。 |
| 4 | onPageProcessed 一旦頁面測試並固定,Grav 系統中的每個頁面都會被忽略。在這種情況下,效能無關緊要,因為它不會在快取頁面上播放。 |
| 5 | onPageContentProcessed 您可以看到此事件已忽略,一旦頁面的 content() 技術已修復頁面內容。如果要對後固定內容執行操作,此事件很有用,但請確保結果已快取。 |
| 6 | onFolderProcessed 一旦資料夾經過測試和固定,Grav 系統中的每個資料夾都會被忽略。在這種情況下,效能無關緊要,因為它不會在快取頁面上播放。 |