siushin / laravel-api
LaravelAPI 基于 Laravel 的API框架,提供常用工具类、助手函数等服务
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:project
pkg:composer/siushin/laravel-api
Requires
- php: ^8.3
- ext-fileinfo: *
- laravel/framework: ^12.0
- laravel/sanctum: ^4.0
- laravel/tinker: ^2.10.1
- siushin/laravel-tool: ^1.0
- zoujingli/ip2region: ^2.0
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/pail: ^1.2.2
- laravel/pint: ^1.13
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.3
README
基于 Laravel 的 API 框架,提供常用工具类、助手函数等服务,采用模块化架构设计。
📖 项目简介
LaravelAPI 是一个基于 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
📦 安装步骤
1. 安装项目
composer create-project siushin/laravel-api
2. 配置环境
# 复制环境配置文件 cp .env.example .env # 生成应用密钥 php artisan key:generate # 创建符号链接 php artisan storage:link
注意:需要确保 php.ini 中
symlink函数未被禁用。
3. 配置数据库
编辑 .env 文件,配置数据库连接:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_api DB_USERNAME=root DB_PASSWORD=
4. 创建数据库
在 MySQL 中创建数据库:
CREATE DATABASE laravel_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5. 初始化系统
# 运行迁移和填充(会自动执行) 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 | 特征,没有明显命名规范,自行查询源码或文档 |
❓ 常见问题
413 Request Entity Too Large
处理方案:
-
调整 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 ):
☕️ 打赏赞助
如果你觉得知识对您有帮助,可以请作者喝一杯咖啡 ☕️
