Grav - 事件挂钩
在本章中,我们将研究Grav 中的事件挂钩。在插件章节中你会看到,插件的逻辑包含在两个方法中。方法是onPluginsInitialized和onPageInitialized;这些方法类似于事件挂钩。要了解更多信息并控制 Grav 插件的功能,您需要检查事件挂钩的可用性。事件钩子自始至终都与 Grav 有着直接的关系。您必须了解调用钩子的顺序以及这些调用时可用的内容。
下表列出了在页面处理期间激活的核心 Grav事件挂钩。
先生。 | 活动及描述 |
---|---|
1 | 致命异常 如果PHP给出致命异常,您可以随时触发此事件。Problem插件使用它来管理显示完整解释列表,解释为什么 Grav 会产生致命错误。 |
2 | 插件初始化时 这是 Grav 中第一个可用的插件事件。如下所述引入了以下对象 -
|
3 | 资产初始化时 这指定资产管理器已加载并准备好使用和管理。 |
4 | 未找到页面 如果您发现意外页面,您可以忽略此事件。目前,错误插件用于指定404 错误页面。 |
5 | 页面初始化 这通过加载到 Page 对象中的URL指定请求的页面。 |
6 | 生成输出时 这指定了Twig 模板引擎的输出过程。目前,它只是一个HTML字符串。 |
7 | 输出渲染时 这是一个输出过程,发送到显示器。 |
8 | 关闭时 这是一个新的且非常强大的事件,允许您执行操作。这是在 Grav完成处理并且与客户端的连接关闭后完成的。此单独操作不需要与用户进行任何交互,因此会影响性能。它包括用户跟踪和作业处理。 |
9 | 下载前 这是一个新事件,它传递到包含文件的事件对象中。它允许用户执行日志记录、授予和忽略下载上述文件的权限。 |
树枝事件挂钩
Twig 有自己的事件挂钩集合可供使用,如下所述。
先生。 | 活动及描述 |
---|---|
1 | onTwigTemplatePaths 模板路径的基本位置在Twig 对象上设置。此事件用于添加 Twig 将搜索模板路径的其他位置。 |
2 | 初始化时 它初始化Twig 模板引擎。 |
3 | onTwig扩展 它指定核心树枝扩展已准备好使用。该事件挂钩允许您添加自己的 Twig 扩展。 |
4 | onTwigPage变量 这个Twig进程允许您直接访问一个页面,即您可以在YAML标头的页面中找到process:twig:tru 。在这里,您可以向 Twig 添加任何变量,并且在此过程中 Twig 应该可以访问这些变量。 |
5 | onTwigSite 变量 在此过程中,您将通过 Twig 方法按顺序看到完整的站点模板。此外,您可以在此过程中向 Twig 添加任何变量。 |
集合事件挂钩
下表列出了集合事件挂钩。
先生。 | 活动及描述 |
---|---|
1 | 处理集合时 在本节中,一旦该过程完成,您就可以控制集合。 |
页面事件挂钩
下表列出了页面事件挂钩的集合。
先生。 | 活动及描述 |
---|---|
1 | onBuildPages初始化 此事件对于插件控制内容和缓存结果很有用。一旦激活此事件,页面将被回收。当缓存已过期或需要刷新时,就会发生这种情况。 |
2 | 蓝图创建时 此事件有助于处理和管理表单。 |
3 | 页面内容原始 在这个过程中,当找到一个页面时,标题是固定的,但内容不会固定。您将看到 Grav 系统中的每个页面都被触发。如果您已清除缓存或正在清除缓存,则会发生此事件。 |
4 | 页面处理 一旦页面被测试并修复,每个页面都会在 Grav 系统中被忽略。在这种情况下,性能并不重要,因为它不会在缓存的页面上播放。 |
5 | 页面内容已处理 一旦页面的 content() 技术修复了页面内容,您就可以看到该事件被忽略。如果您想要对后固定内容执行操作但要确保结果已缓存,则此事件非常有用。 |
6 | 文件夹已处理 一旦文件夹被测试并修复,每个文件夹都会在 Grav 系统中消失。在这种情况下,性能并不重要,因为它不会在缓存的页面上播放。 |