- 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 系统中的每个文件夹都会被忽略。在这种情况下,性能无关紧要,因为它不会在缓存页面上播放。 |