[开源]多应用、多租户、多终端的SaaS平台开发框架,SaaS服务平台

2022-04-14 17:10:39 浏览数 (1)

一、开源项目简介

SAPI 是多应用、多租户、多终端的SaaS平台开发框架。基于ThinkPHP6.x的多应用模式开发,开发者不需要二次学习,就可以开发自己的多应用多租户SaaS服务平台,简单好用是SAPI 的特点。

二、开源协议

使用GPL-3.0开源协议

三、界面展示

四、功能概述

SAPI v2.0的特点

  • 开箱即用 分钟快速安装,安装后即可进入开发无需复杂配置。
  • 应用隔离 支持分库分表,用户数据安全自助决定。
  • 方便快捷 没用VUE框架,免编译,基于原生jQuery并封装统一入口。
  • API鉴权 集成规范的API开发逻辑,符合REST API设计理论,系统集成鉴权机制。
  • 菜单接入 接口化菜单接入,可将应用轻松接入任意菜单模块中,无需后台配置。
  • 精美样式 针对SAPI 管理端开发独立精美CSSUI样式。
  • 独立域名 所有租户支持独立绑定独立域名.例:WEB/H5可绑定独立访问。

SAPI v2.0的优势

  • 接入微信开放平台,SaaS应用(微信小程序)一键授权发布;
  • 完善的微信公众号、小程序帐号授权体系,基于API已全部封装,不用二次开发,你只需关注应用功能的开发;
  • 支持VUE/React前后端分离,SSR形式和混合开发;
  • 支持开发APP(安卓,IOS)、公众号、小程序、H5、PC等独立应用;
  • 租户的购买、授权、充值、消费账单管理;
  • 支持完善的会员帐号体系,和无限极会员层级管理;
  • 租户同时购买授权无数个产品应用

五、技术选型

环境要求

代码语言:javascript复制
框架:ThinkPHP6.x(微信开发框架)
环境:PHP8.0.2   Mysql
系统:Windows,Linux(推荐)
     PHP > 8.0.2
     Nginx >= 1.14或者apache >=2.4
     Mysql >= 5.7 数据库引擎InnoDB
     Redis >= 5.0
     PHP扩展 fileinfo,curl,openssl,simpleXML,redis,mbstring,mysqli,openssl,gd,zip

目录结构

请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。

SAPI 是基于ThinkPHP6.x开发的,目录结构和ThinkPHP6.x保持一致不变,具体请查看ThinkPHP6.x官方开发手册。

SAPI 目录结构

在实际的部署中,请确保只有public目录可以对外访问。在mac或者linux环境下面,注意需要设置runtime目录权限为777

代码语言:javascript复制
├─app    应用目录
│  ├─module_name1        应用名称1
│  │  ├─common.php      函数文件
│  │  ├─config          配置目录
│  │  │  ├─admin.php    管理端菜单配置
│  │  │  ├─Tenant.php   租户端菜单配置
│  │  │  ├─version.php  应用配置信息
│  │  ├─api    控制器目录
│  │  │ ├─v1_0        API目录(目录规范v1_x_x)
│  │  │ ├─service     免签名API目录
│  │  ├─web           通过浏览器访问的控制器 url.com/web/client_id
│  │  │ ├─web         PC/H5网站
│  │  │ ├─app         APP内webview浏览内容
│  │  │ ├─wechatmp    公众号
│  │  │ ├─wechatapp   小程序内webview浏览内容
│  │  ├─controller    控制器目录
│  │  ├─├─admin       后台管理
│  │  ├─├─tenant      租户管理
│  │  ├─...           没有后台管理的直接在controller下创建
│  │  ├─model         模型目录
│  │  ├─view          视图目录
│  │  └─ ...          更多类库目录
│  ├─module_name2      应用名称2
│  │  └─ ...           应用接口同上
│  └─event.php          事件定义文件
│  ├─common.php         全局公共函数文件
│  ├─provider.php       服务提供定义文件
│  ├─service.php        全局系统系统服务定义文件
│  └─middleware.php     全局中间件定义文件
├─config                全局配置目录
│  ├─app.php            应用配置
│  ├─config.php         SAPI  系统接入第三方配置
│  ├─filesystem.php     SAPI  支持OSS/COS/七牛/本地文件上传服务的秘钥配置信息
│  ├─...                其它所有配置请查看ThinkPHP6.x官方书册
├─base    SAPI  底层目录
│  ├─logic                 系统扩展目录目录
│  ├─model                 基础模型目录
│  ├─├─ SystemAdmin.php    系统管理员
│  ├─├─ SystemAgent.php    代理
│  ├─├─ SystemApp.php      安装应用
│  ├─├─ SystemApps.php     租户应用
│  ├─├─ SystemAppsClient.php  租户应用接入
│  ├─├─ SystemAppsConfig.php  租户应用配置
│  ├─├─ SystemAppsRelease.php 租户应用发布状态
│  ├─├─ SystemTenant.php.php  租户管理
│  ├─├─ SystemTenantBill.php  租户状态
│  ├─├─ SystemUser.php        租户会员
│  ├─├─ SystemUserRuid.php    租户会员的登录ID
│  ├─├─ SystemUserRelation.php 租户关系
│  ├─BaseController.php     基类
│  ├─BaseModel.php          模型基类
│  ├─AdminController.php    管理端控制基类
│  ├─ApiController.php      API控制器基类
│  ├─TenantController.php   租户端基类
│  ├─WebController.php      网页端基类
│  ├─...                    其它系统目录(无需关心不再特别注明)
├─public              WEB目录(对外访问目录)
│  ├─static             模块独立静态文件目录(可写,可定制)
│  │  ├─module_name     应用名称和app目录中module_name名称保持一样
│  │  ├─├─logo.png     应用默认logo
│  │  ├─├─...          应用需要用到的资源
│  ├─res                本地资源上传目录(可写,可定制)
│  ├─install            应用安装程序(安装完后记得删除)
├─platform              SAPI  管理平台目录
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─.example.env          环境变量示例文件
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件

来源:

https://www.toutiao.com/article/7085740144220848643/?log_from=672fddf8ae233_1649813542472

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

来都来了,走啥走,留个言呗~

 IT大咖说  |  关于版权

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

  • 相关推荐
  • 推荐文章
  • 如何在断开连接后保持远程 SSH 会话运行
  • 还在用维恩图可视化SQL的Join连接吗?你该看看这个
  • Dubbo扩展点开发指南
  • Avue - 更加贴合企业开发的数据驱动前端开发框架
  • 用ClickHouse近乎实时地进行欺诈检测
  • 2022年 6 款适用于 Linux 的最佳免费杀毒软件
  • kafka2.x常用命令笔记(一)创建topic,查看topic列表、分区、副本详情,删除topic,测试topic发送与消费
  • NginxWebUI - 图形化的 Nginx 配置管理工具

0 人点赞