基于 Laravel 的 API 框架,提供常用工具类、助手函数等服务,采用模块化架构设计。
GPAdmin-api 是一个基于 Laravel 12 构建的企业级 API 框架,采用模块化架构,提供用户管理、权限管理、日志管理等核心功能,支持快速开发 RESTful API 服务。
- PHP >= 8.3
- Laravel 12.0
- Laravel Sanctum - API 认证
- Laravel Modules - 模块化架构
- MySQL - 数据库
- IP2Region - IP 地址查询
- ✅ 用户登录 / 授权
- ✅ 管理员列表
- ✅ 用户管理(支持审核流程)
- ✅ 日志管理(操作日志、登录日志、审计日志、通用日志)
- ✅ 通知管理(公告、站内信)
- ✅ 权限管理
- ✅ 系统参数配置
- ✅ 文件管理
- ✅ 数据字典
- PHP >= 8.3
- Composer
- MySQL >= 5.7
- PHP 扩展:fileinfo, mbstring, pdo_mysql
composer create-project siushin/GPAdmin-api# 复制环境配置文件
cp .env.example .env
# 生成应用密钥
php artisan key:generate
# 创建符号链接
php artisan storage:link注意:需要确保 php.ini 中
symlink函数未被禁用。
编辑 .env 文件,配置数据库连接:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_api
DB_USERNAME=root
DB_PASSWORD=在 MySQL 中创建数据库:
CREATE DATABASE laravel_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;# 运行迁移和填充(会自动执行)
composer install
# 或手动执行
# 初次执行
php artisan migrate --seed
# 清空所有并重新执行
php artisan migrate:fresh --seed默认管理员账号: admin / admin
⚠️ 重要提示:执行composer create-project或composer install都会执行 清空 表并 重新填充 数据(php artisan migrate:fresh --seed)。如有重要数据,请自行备份。
注意:执行命令
composer create-project或composer install都会执行 清空 表并 重新填充 数据php artisan migrate:fresh --seed。如有重要数据,请自行备份。
# 启动开发服务器(包含服务器、队列、日志、前端构建)
composer run dev
# 启动 Web 服务器
php artisan serve
# 启动队列监听
php artisan queue:listen
# 查看日志
php artisan pail# 运行迁移
php artisan migrate
# 回滚迁移
php artisan migrate:rollback
# 运行填充
php artisan db:seed
# 重置数据库并填充
php artisan migrate:fresh --seed# 运行测试
composer test
# 或
php artisan test# 代码格式化(使用 Laravel Pint)
./vendor/bin/pint# 更新 Composer 的自动加载文件
composer dump-autoload
# 启用 API 路由
php artisan install:api
# 发布 CORS(跨源资源共享)配置
php artisan config:publish cors
# 创建系统枚举类(示例)
php artisan make:enum DictionaryCategoryEnum
php artisan make:enum OrganizationTypeEnum| 目录名 | 描述 |
|---|---|
| Cases | |
| Enums | 枚举类,一般以 Enum 结尾 |
| Funcs | 助手函数,分以 Lara 开头的基于Laravel的助手函数,以及以 Func开头的常用助手函数(方便全局搜索) |
| Traits | 特征,没有明显命名规范,自行查询源码或文档 |
处理方案:
-
调整 Nginx 配置
- 配置文件中增加或修改
client_max_body_size指令 - 例如,将大小设置为 100MB:
http { client_max_body_size 100m; }
- 配置文件中增加或修改
-
调整 PHP 配置
- 调整 PHP 的
upload_max_filesize和post_max_size配置项 upload_max_filesize = 100Mpost_max_size = 100M
- 调整 PHP 的
项目采用模块化架构,主要模块包括:
- Base - 基础模块(用户、管理员、日志、通知等)
- Sms - 短信模块
项目目录结构遵循 Laravel 规范,模块化代码位于 Modules/ 目录下:
| 目录名 | 描述 |
|---|---|
| Cases | 案例/示例代码 |
| Enums | 枚举类,一般以 Enum 结尾 |
| Funcs | 助手函数,分以 Lara 开头的基于 Laravel 的助手函数,以及以 Func 开头的常用助手函数(方便全局搜索) |
| Traits | 特征类,没有明显命名规范,自行查询源码或文档 |
多年开发经验,具有丰富的前、后端软件开发经验~
👤 作者:https://github.com/siushin
💻 个人博客:http://www.siushin.com
📮 邮箱:siushin@163.com
在使用过程中有任何想法、合作交流,请加我微信 siushin (备注 github ):
如果你觉得知识对您有帮助,可以请作者喝一杯咖啡 ☕️


