当前位置: 首页 > 文档资料 > Grav 入门教程 >

插件基础知识(Plugin Basics)

优质
小牛编辑
121浏览
2023-12-01

在本章中,我们将研究Grav中的Event Hooks 。 在Plugins章节中,您将看到,插件的逻辑包含在两个方法中。 方法是onPluginsInitializedonPageInitialized ; 这些方法类似于事件挂钩。 要了解更多信息并控制Grav插件的功能,您需要检查事件挂钩的可用性。 事件挂钩从头到尾与Grav有直接关系。 您必须知道调用挂钩的顺序以及这些调用时可用的内容。

下表列出了在处理页面期间激活的核心Grav event hooks

Sr.No.活动和描述
1

onFatalException

如果PHP给出致命异常,您可以随时触发此事件。 Problem插件使用它来管理显示完整解释的列表,以解决Grav传递致命错误的原因。

2

onPluginsInitialized

这是第一个可在Grav中使用的插件事件。 如下所述介绍了以下对象 -

  • Uri
  • Config
  • Debugger
  • Cache
  • Plugins
3

onAssetsInitialized

这指定assets管理器已加载并可供使用和管理。

4

onPageNotFound

如果您找到了意外的页面,则可以关闭此事件。 目前,错误插件用于指定404 error页面。

5

onPageInitialized

这通过加载到Page对象的URL指定所请求的页面。

6

onOutputGenerated

这指定了Twig templating引擎的输出过程。 目前,它只是一串HTML

7

onOutputRendered

这是一个输出过程,发送到显示器。

8

onShutdown

这是一个新的非常强大的事件,允许您执行操作。 这是在Grav completed processing并关闭与客户端的连接之后completed processing 。 此单独操作不需要与用户进行任何交互,结果会影响性能。 它包括用户跟踪和作业处理。

9

onBeforeDownload

这是一个新事件,它passes到包含文件的事件对象。 它允许用户执行记录,授予和忽略下载所述文件的权限。

Twig Event Hooks

Twig有自己的事件挂钩集合,如下所述。

Sr.No.活动和描述
1

onTwigTemplatePaths

模板路径的基本位置在Twig object上设置。 此事件用于添加Twig将搜索模板路径的其他位置。

2

onTwiglnitialized

initialize Twig模板引擎。

3

onTwigExtensions

它指定核心树枝扩展即可使用。 此事件挂钩允许您添加自己的Twig扩展。

4

onTwigPageVariables

这个Twig过程允许你直接页面,即你可以在YAML标题的页面中找到process:twig:tru 。 在这里,您可以向Twig添加任何变量,并且在此过程中可以访问twig。

5

onTwigSiteVariables

在此过程中,您将通过Twig方法按order wise查看完整的网站模板。 此外,您可以在此过程中向Twig添加任何变量。

收集事件挂钩

下表列出了一个集合事件挂钩。

Sr.No.活动和描述
1

onCollectionProcessed

在本节中,一旦完成该过程,您就可以control集合。

页面事件挂钩

下表列出了页面事件挂钩的集合。

Sr.No.活动和描述
1

onBuildPagesInitialized

此事件对于插件控制内容和缓存结果非常有用。 激活此事件后,页面将被回收。 当缓存已expired或需要refreshing时,会发生这种情况。

2

onBlueprintCreated

此事件有助于处理和管理表单。

3

onPageContentRaw

在此过程中,当找到页面时, headers是固定的,但content将不会被修复。 您将在Grav系统中看到每个页面都被触发。 如果已清除缓存或清除缓存,则会发生此事件。

4

onPageProcessed

一旦页面被tested并修复,每个页面都会在Grav系统中被解除。 在这种情况下,性能无关紧要,因为它不会在缓存页面上播放。

5

onPageContentProcessed

一旦页面的content()技术修复了页面内容,您就可以看到此事件被解除。 如果您希望对修复后的内容执行操作但确保cached结果,则此事件非常有用。

6

onFolderProcessed

测试并修复文件夹后,Grav系统中的每个文件夹都将被解除。 在这种情况下,性能无关紧要,因为它不会在缓存页面上播放。