baigo CMS


插件钩子

钩子的机制是允许插件把一些功能“挂载”到系统中。系统运行至某个环节时,去调用插件内的一些函数。钩子分为两种:

  • 动作 Action

    动作是 ginkgo 运行到某些环节时,就会被执行的一种钩子。插件可以通过动作来指示系统在遇到这些环节的时候,执行指定的函数。

  • 过滤器 Filter

    过滤器的是 ginkgo 用于修改将要保存或发送出去的数据的一种钩子。插件可以通过过滤器来指示系统在遇到某些环节的时候,就执行指定的函数去修改特定的数据。

某些时候动作和过滤器可以达到相同的效果。比如要修改文章的内容,可以把插件挂载到过滤器 filter_console_article_edit 上,在文章的内容保存到数据库前就修改它。也可以把插件挂载到过滤器 filter_pub_article_show 上,在文章的内容发送到浏览器前修改它。

动作钩子和过滤器钩子最大的区别是过滤器有回传参数,可以利用插件将修改过的数据回传给系统,不同的钩子处理修改过的数据时也有所不同,有的是保存到数据库之前就修改,有的是在内容发送到浏览器前修改。


ginkgo 框架内置钩子
名称 类型 描述
action_fw_init action 框架初始化时触发
action_fw_response_send action 响应发送时触发
action_fw_response_end action 响应输出后触发
action_fw_end action 框架运行结束时触发
filter_fw_view filter 视图渲染时过滤

filter_fw_view 返回参数为渲染后的 HTML,回传参数也必须是 HTML。