每个插件钩子文件必须继承公共的插件控制器app\common\controller\Plugins
,插件里面必须要有以下四个方法:
<?php
namespace plugins\aaa;
use app\common\controller\Plugins;
class aaa extends Plugins
{
/**
* @var array 插件钩子清单
*/
public $hooks = [
// 钩子名称 => 钩子说明【系统钩子,说明不用填写】
'system_admin_tips',
];
/**
* system_admin_tips钩子方法 ,驼峰命名
* @param $params
*/
public function systemAdminTips($params)
{
echo '这是插件[aaa]的示例![我在这儿:/plugins/aaa/aaa.php]<br>';
}
/**
* 安装前的业务处理,可在此方法实现,默认返回true
* @return bool
*/
public function install()
{
// 在此写业务代码,没有可不写
return true;
}
/**
* 安装后的业务处理,可在此方法实现,默认返回true
* @return bool
*/
public function installAfter()
{
// 在此写业务代码,没有可不写
return true;
}
/**
* 卸载前的业务处理,可在此方法实现,默认返回true
* @return bool
*/
public function uninstall()
{
// 在此写业务代码,没有可不写
return true;
}
/**
* 卸载后的业务处理,可在此方法实现,默认返回true
* @return bool
*/
public function uninstallAfter()
{
// 在此写业务代码,没有可不写
return true;
}
}
调用:
模板调用 {:runhook(‘system_admin_tips’)}
php文件调用 runhook(‘example_hook’)
带参数调用 runhook(‘example_hook’, [‘param1’=> ‘参数1’, ‘param2’=> ‘参数2’])