ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 编写规则 ## 类注释(元信息) 头部注释格式如下: > /** > * 插件描述 > * > * @display 插件显示名称 > * @package 插件名称(只能由英文、数字和下划线构成) > * @author 插件作者 > * @version 插件版本 > * @link 链接 > */ 至少,@package不能缺,否则系统将不会将其识别为插件 从 v0.3 开始,您必须把该注释写在 class xxxPlugin (类定义)的上方,否则可能会导致获取不到注释。 ## 内容(v0.3后) 插件主文件应为一个类,类名为xxxPlugin,其中xxx为插件名称,与@package对应。该必须继承Core\Plugin\Plugin。具体请看插件示例。 注册钩子应该在register方法中进行,该方法为抽象方法,需要在插件内实现。注册时调用$this->manager->register,该方法有两个参数,第一个参数是钩子名,第二个参数为可调用对象(callable,call_user_func能调用的),具体可以参照插件示例。具体的钩子名称和用途参照[Hook列表](947275) 当插件display字段不存在时,后台将会显示package作为插件名称 **注意:如果类名不正确或没有继承Plugin,则不会被系统识别为插件。** # 插件示例 ~~~ <?php use Core\Plugin\Plugin; /** * 这是一个用于测试的小插件,绑定了demo钩子,可以在主题中触发钩子以便测试 * * @display 测试插件 * @package test * @author TarBlog * @version 0.1 * @link https://www.tarblog.cn */ class TestPlugin extends Plugin { /** * @inheritDoc */ public function register() { $this->manager->register('demo', function () { echo '测试'; }); $this->manager->register('demo', [$this, 'demo']); } public function demo() { echo '这也是测试'; } } ~~~