目录
- niucloud-saas手册
- 源码下载
- 安装部署
- 二次开发须知
- 二次开发指导
- 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
- 常见问题
- 怎么添加菜单,添加了菜单不出现怎么回事
- 怎么配置跨域的问题
- 站点site端(租户端、商家端)和saas管理端(平台端)究竟啥意思,有啥区别
- 框架中是有订单表order,假如开发一个商城插件,请问商城的订单数据是不是重新搞一个订单表shop_order
- 有些支付平台是绑定回调唯一网址或目录,如果有几个开发者开发插件都有支付那这块怎么解决?
- 站点过期,可以登录,这样对吗?
- 计划任务怎么启动啊
- Git多分支开发,切换分支
- 安装应用出现is_dir():报错处理方案
- 绑定授权时出现“请求来源产品与授权产品不一致”解决方案
- “未找到admin源码所在目录”的解决方案
- 页面装修本地开发环境配置
- 接口请求错误处理方案
- 未获取到授权信息问题处理方案
- 腾讯地图配置
- 请求超时问题处理方案
- 下载应用时提示找不到zip解决方案
- 怎么关闭开发调试模式
- 获取数据失败问题处理方案
- 框架安装后,访问域名无法进入admin端(多数发生在本地)
- 底部导航失效问题
- 开放平台小程序审核通过发布失败问题
- 先升级插件后升级框架,导致云编译报debounce的错误
- 微信公众号自动回复不通
- 如何修改访问域名默认跳转端口
- 插件与框架的版本兼容问题处理方案
- 升级提示mkdir()处理方案
- 云编译时node.js内存不足导致内存溢出处理方案
- 报错Allowed memory size of ** bytes exhausted (tried to allocate ** bytes)处理方法
- 代码生成器
- niucloud (服务端)
- admin (后台管理端)
- uni-app(手机端前端)
- web端(PC前端)
- api接口
- 配置手册
插件开发
插件目录结构
├─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 主应用目录
开发插件步骤
- 建立插件文件目录 我们要在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`;