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