Files
zhamao-framework/assets/js/57.2166b068.js

1 line
14 KiB
JavaScript
Raw Normal View History

2024-09-19 08:29:13 +00:00
(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{768:function(s,a,t){"use strict";t.r(a);var n=t(84),e=Object(n.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"插件开发"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#插件开发"}},[s._v("#")]),s._v(" 插件开发")]),s._v(" "),a("p",[s._v("在框架环境准备就绪后,可以使用框架提供的命令、工具集进行插件的开发。")]),s._v(" "),a("p",[s._v("如果你还没有阅读 "),a("RouterLink",{attrs:{to:"/guide/get-started.html"}},[s._v("快速上手-聊天机器人")]),s._v(" 章节的内容,请先阅读。")],1),s._v(" "),a("h2",{attrs:{id:"创建插件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建插件"}},[s._v("#")]),s._v(" 创建插件")]),s._v(" "),a("p",[s._v("框架默认支持两种形式的插件,一种是 "),a("code",[s._v("file")]),s._v(" 单文件模式,另一种是 "),a("code",[s._v("psr4")]),s._v(" 多文件模式。一般情况下,写一个较为简单的功能插件,推荐使用单文件模式,便于管理。\n编写功能较多、需要分多个文件写逻辑的插件推荐使用 "),a("code",[s._v("psr4")]),s._v(" 多文件模式。")]),s._v(" "),a("p",[s._v("框架的插件命名方式基于 ComposerComposer 要求组件、插件的名称要有开发者名称和项目名称两部分组成。\n例如我的开发者代号仓库是 "),a("code",[s._v("jackson")]),s._v(",插件名称是 "),a("code",[s._v("group-manager")]),s._v(",最终你的插件名称就是 "),a("code",[s._v("jackson/group-manager")]),s._v("。")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使用终端问答向导创建插件,可根据终端的提示选择你要创建插件的名称、类型和命名空间等内容。")]),s._v("\n./zhamao plugin:make "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("file\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使用 file 类型的示例骨架创建插件,插件名称为 foobar/test-plugin")]),s._v("\n./zhamao plugin:make "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("file foobar/test-plugin\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使用 psr4 类型的示例骨架创建插件,插件名称为 foobar/psr4-plugin命名空间为 foobar")]),s._v("\n./zhamao plugin:make "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("psr4 "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--namespace")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("foobar foobar/psr4-plugin\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置插件作者名称、描述信息")]),s._v("\n./zhamao plugin:make "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--author")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("tom "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--description")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"示例插件"')]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a