完善文档
彭青松 authored
687bdc89

低代码平台项目基础框架

框架名称: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
# 至此安装完成

访问

API请求地址 http://host/

后端页面地址 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 单元测试文件目录