低代码平台项目基础框架
框架名称:lumen_xadmin
lumen 文档地址 https://lumen.laravel.com/docs/8.x
安装
# 下载框架到你的工作目录
git clone http://gitlab.kupurui.cn/crpt-project-public/your_project.git
# 切换到项目中,安装扩展
cd your_project
#注意PHP版本要7.4及以上,composer用2.x
composer install
# 配置.env中的一些特殊变量
APP_KEY=你自己的秘钥
# 默认签名是打开的 IS_CHECK_SIGN=true 如果需要关闭改为false,使用签名请自行修改自己的盐值
APP_SOCKET_KEY=你自己的盐值
# 如果是低代码项目单独部署,执行命令进行数据库部署
php artisan TransferSql
# 至此安装完成
访问
http://host/
API请求地址http://host/admin/login.html
后端页面地址后端lumen开发架构介绍
总纲
1、公共函数、常量、服务提供者实现类、工具类定义
1、公共常量定义目录
path:app/Common/Const
1、ApiConst.php:全局常量定义文件
2、公共函数定义目录
path:app/Common/Function
1、ScarecrowFunction.php:全局公共函数定义文件
3、服务提供者类、工具类目录
path:app/Common/ScarecrowProvider
1、ScarecrowAuthProvider.php:权限管理服务提供者实现类
2、ScarecrowDoLogProvider.php:全局操作日志处理类(该类主要用于对敏感操作主动进行日志记录)
2、服务提供者、门面定义
1、服务提提供者类:
自定义权限管理服务提供者
path:app/Providers/ScarecrowAuthServiceProvider
2、门面类:
自定义权限管理门面(类似官方自带Auth)
path:app/Facades/ScarecrowAuth
3、中间件(路由中间件:只对指定此中间件的路由生效;全局中间件:对所有的路由都生效)
1、API鉴权中间件(路由中间件)
path:app/Http/Middleware/ApiTokenCheckMiddleware
介绍:该中间用于对API的登录判定,API路由权限判定,自动更新API的访问有效期、次数等
2、验签中间件(路由中间件)
path:app/Http/Middleware/CheckApiSignMiddleware
介绍:该中间件用于对API的签名进行判定
配置(在.env文件中配置即可生效):
#API是否验签
IS_CHECK_SIGN:true
#签名盐值,客户端签名的盐值必须与此值一致否则签名验证不会通过,如果没有配置则默认为 SCARECROW_API_SOCKET
APP_SOCKET_KEY:KEY
3、开启跨域中间件(全局中间件)
path:app/Http/Middleware/CheckApiSignMiddleware
介绍:该中间件用于所有路由,允许接口跨域
配置(在.env文件中配置即可生效):
#是否允许API跨域
IS_ALLOW_ORIGIN:true
4、异常接管中间件(全局中间件)
path:app/Http/Middleware/HandleExceptionMiddleware
介绍:该中间件用于格式化异常输出格式,使其与API正常响应输出格式一致
配置(在.env文件中配置即可生效):
#是否格式化异常输出
IS_FORMAT_EXCEPTION=true
基础内置模块
用户、登录、API有效期管理
path:app/Http/Controllers/AuthManage/LoginController
路由地址:routes/auth.php
文档地址:doc/*_login_doc.md
菜单管理
path:app/Http/Controllers/AuthManage/MenuController
路由地址:routes/auth.php
文档地址:doc/back_menu_doc.md
权限管理
path:app/Http/Controllers/AuthManage/AuthController
路由地址:routes/auth.php
文档地址:doc/back_auth_doc.md
其他介绍
1、.env配置:
#操作日志存入引擎 该配置是配合全局操作日志处理类进行选择日志存储引擎的(file/mysql)
ACTION_LOG_WRITE_TYPE=file
2、全局函数:
ApiReturn:该函数作为全局API统一返回格式
ModelReturn:该函数作为全局MODEL统一返回格式
HandleLog:该函数返回一个全局操作日志处理类,调用其中的addLog方法进行全局日志添加
DieDump:全局断点输出方法
3、扩展安装
1):使用composer require xxx 安装你们在库
2):将扩展包直接丢入Extend目录,然后执行composer dumpautoload,框架会自动加载(composer无法安装的包采用此方案)
4、自定义配置文件
1):在项目根目录创建 config 目录
2):在里面编写自己的配置文件,文件中返回一个数组作为配置内容,而文件名称作为配置的KEY,例如这里配置文件为systemframe.php
3):在bootstrap/app.php 中注册此配置文件 $app->configure('systemframe'); 即可使用config('systemframe') 获取配置了
单元测试命令
php phpunit --configuration phpunit.xml --verbose --group Menu
--configuration: 加载配置文件进行测试
--verbose: 列出详情测试信息
--group: 测试分组名词(在测试类中@group进行声明分组)
Eg: C:\RuanJian\phpEnv\php\php-7.4.9-nts\php.exe C:/PHP/PHP/PHP/lumen_xadmin/vendor/phpunit/phpunit/phpunit --configuration C:\PHP\PHP\PHP\lumen_xadmin\phpunit.xml C:\PHP\PHP\PHP\lumen_xadmin\tests --verbose
开发目录介绍
- app 项目目录
- Common 公共目录
- Config 公共配置目录
- Const 公共常量设置目录
- Function 公共函数目录
- Logging 公共日志中间件目录
- ScarecrowProvider 公共服务提供者目录(自己开发的)
- Console 控制台目录
- Commands 命令目录
- Open 二开使用目录
- System 系统生成目录禁止修改
- Events 事件目录
- Exceptions 异常目录
- Facades 门面相关目录
- Http 项目业务逻辑目录
- Controllers 控制器目录
- AppHome APP模块控制器根目录
- BackHome BACK模块控制器根目录
- Open 二开控制器目录(该目录下允许创建目录进行区分功能模块)
- System 系统生成控制器目录禁止修改
- Middleware 中间件目录
- AppHome APP中间件根目录
- BackHome BACK中间件根目录
- Validators 验证器目录
- AppHome APP验证器目录
- BackHome BACK验证器目录
- Open 二开验证器目录
- System 系统生成目录禁止修改
- Jobs 任务目录
- Middleware 任务中间件目录
- Listeners 监听器目录
- Open 二开目录
- System 系统生成目录禁止修改
- Models 数据模型目录
- AppHome APP的数据模型目录
- BackHome BACK的数据模型目录
- Open 二开数据模型目录
- System 系统生成数据目录禁止修改
- Providers 服务提供者目录
- Rules 验证器规则目录
- bootstrap 项目启动核心目录
- config 全局配置目录
- Open 二开配置目录
- System 系统生成配置目录
- database 数据库迁移目录
- factories 数据模型工厂
- migrations 数据迁移文件目录
- seeders 数据迁移文件执行目录
- sql_version_manage 低代码平台数据迁移文件
- doc 系统文档目录
- extend 系统自动扩展三方目录
- public 对外开放公共入口、资源目录
- resources 资源视图目录
- routes 路由目录
- storage 缓存目录
- app 项目文件存放目录
- framework 框架缓存目录
- cache 缓存数据目录
- views 缓存视图文件
- logs 日志目录
-system 系统日志
- tests 单元测试文件目录