# lumen_xadmin **Repository Path**: scarecrowpqs/lumen_xadmin ## Basic Information - **Project Name**: lumen_xadmin - **Description**: lumen做API开发框架,x-admin做后端管理界面,一款基础的快速开发框架 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 3 - **Created**: 2021-01-22 - **Last Updated**: 2024-04-17 ## Categories & Tags **Categories**: backend **Tags**: None ## README # lumen_xadmin lumen 文档地址 https://lumen.laravel.com/docs/8.x # 安装 ```shell script # 下载框架到你的工作目录 git clone https://gitee.com/scarecrowpqs/lumen_xadmin.git # 切换到项目中,安装扩展 cd lumen_xadmin composer install --ignore-platform-reqs # 添加配置文件,将根目录的.env.example复制一份为.env cp .env.example .env # 配置.env中的一些特殊变量 APP_KEY=你自己的秘钥 # 默认签名是打开的 IS_CHECK_SIGN=true 如果需要关闭改为false,使用签名请自行修改自己的盐值 APP_SOCKET_KEY=你自己的盐值 # 将sc_lumen_auth.sql导入到你自己的数据库,这里面是基础的数据表,并修改.env中的数据库配置 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=sc_lumen_auth DB_USERNAME=xxxxx DB_PASSWORD=xxxxx # 至此安装完成 # 后台默认超级管理员账号: 18888888888 默认密码: 123456 ``` # 访问 ### API请求地址 http://host/ ### 后端页面地址 http://host/admin/login.html #### Description lumen做API开发框架,x-admin做后端管理界面,一款基础的快速开发框架 # 后端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