💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 插件开发 插件目录结构 ``` ├─niucloud niucloud-admin框架目录 │ ├─addon 插件目录 │ │ ├─helloworld hello World插件 │ │ │ ├─admin admin端口 │ │ │ ├─app app │ │ │ ├─package 依赖包,系统安装时会自动安装依赖包 │ │ │ │ ├─admin-package.json admin端口的依赖包 │ │ │ │ ├─composer-package.json 主应用依赖包 │ │ │ │ ├─uni-app-package.json uni-app端依赖包 │ │ │ │ ├─uni-app-pages.php uni-app端口页面文件 │ │ │ │ ├─web-package.json web前端依赖包 │ │ │ ├─resource 插件资源文件 │ │ │ ├─sql 插件的sql文件夹 │ │ │ │ ├─install.sql 插件安装时会自动调用执行 │ │ │ │ ├─unInstall.sql 插件卸载时会自动调用执行 │ │ │ ├─uni-app uni-app端口 │ │ │ ├─HelloWorld.php 插件主安装、卸载、更新时自动调用相关函数 │ │ │ ├─info.json 插件的配置文件 │ │ ├─myctl myctl插件 │ │ ├─... 其他插件 │ ├─app 主应用目录 ``` ### 开发插件步骤 1. 建立插件文件目录 我们要在niucloud\addon\ 建立插件的目录。这个目录要注意一般带有自己公司或者厂家的前缀或者后缀,防止和别人开发的同名插件冲突。 插件目录结构几乎和app的目录结构相同,这样,同样的配置文件config、数据字典dict、前后端端口,基本可以参照app目录结构来建立。 ### **info.json 插件的配置文件** title 插件的标题 desc 插件描述 key 插件关键字 version 插件版本号 author 插件作者 url 开发者网址 type 插件类型 默认值为"addon",一般不做修改 support_app 插件支持的应用,为空或省略时表示该插件支持任何应用安装。如果制定插件名称,只能指定应用安装 ``` { "title": "hello world", "desc": "Niucloud hello world演示插件", "key": "hello_world", "version": "1.0.1", "author": "niucloud", "url": "https://www.niucloud.com", "type": "addon", "support_app": "niucloud" } ``` ### **HelloWorld.php 插件程序** 每个插件都需要自己实现install, unstall, upgrade 方法。 ``` class HelloWorld { /** * 插件安装执行 */ public function install() { return true; } /** * 插件卸载执行 */ public function uninstall() { return true; } /** * 插件升级执行 */ public function upgrade() { return true; } } ``` ### **install.sql** ``` CREATE TABLE IF NOT EXISTS `{{prefix}}hello_world` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '' COMMENT '名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示插件表'; INSERT INTO `{{prefix}}hello_world`(`id`, `name`) VALUES (1, '名称'); ``` ### **unInstall.sql** ``` DROP TABLE IF EXISTS `{{prefix}}hello_world`; ``` ### **resource 插件资源文件**