php 钩子插件,白话插件钩子以及简易教程

thinkcmf5.1 插件钩子教程笔记

白话插件钩子

我的理解是:钩子是插件的一个标识位置,在模板中放入一个插件的钩子,当模板输出到此钩子位置时,就调取插件的相应内容

插件钩子示例

Tips:

向系统暴露你的钩子 ( 在你的应用根目录加上hooks.php文件 ,

文件中返回此应用钩子数组 )

插件主类中实现钩子方法

在模板合适位置放入钩子即可

比如:想在模板index.html文件中,放入一个钩子

首先:在 portal 应用的hooks.php中暴露钩子

位置时:app/portal/hooks.php

image-37.png暴露插件钩子

其次:在插件主类中实现钩子方法

image-38.png实现钩子方法

最后:在模板合适位置放入钩子即可

image-36.png

效果:安装插件后,访问页面,实现的效果就是在插件位置,运行了shopStart方法,如图:

image-39.png效果展示

制作一个插件,并添加钩子

tips:

插件目录:public/plugins

插件目录命名规则:全小写使用_分隔单词,与命名空间一致,eg:eyunzhu_shop

插件类名命名规则:采用大驼峰命名法,都带 Plugin类名后缀,eg:EyunzhuShopPlugin.php

注意插件 name 要与类名前部分完全一致,否则安装会出现:插件不存在

添加模板钩子

重复一遍,分三步使用钩子

在相应应用模块的hooks.php中加入钩子

在模板合适位置放入钩子

在插件主类中实现钩子方法

在app/portal/hooks.php 添加模板钩子

return [    'shop_start'    => [        "type"        => 3,//钩子类型(默认为应用钩子;2:应用钩子;3:模板钩子;4:后台模板钩子)

"name"        => '商城开始', // 钩子名称

"description" => "商城在此开始", //钩子描述

"once"        => 0 // 是否只执行一次

],

]

在模板中使用钩子 public/themes/simpleboot3/portal/index.html 中加入

//主类部分代码namespace plugins\eyunzhu_shop;use cmf\lib\Plugin;class EyunzhuShopPlugin extends Plugin{  public $info =[  'name'   => 'EyunzhuShop',//注意name 要与类名前部分完全一致,否则安装会出现:插件不存在

'title'   =>'商城插件',    'description' =>'整合支付宝及发卡的商城插件',    'status'      => 1,    'author'      => 'eyunzhu',    'version'     => '1.0',    'demo_url'    => 'http://tool.eyunzhu.com',    'author_url'  => 'https://eyunzhu.com',

];

//实现的 shop_start 钩子方法

public function shopStart($param)

{    echo "this is eyunzhu_shop Plugin";

}

......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值