| Package Data | |
|---|---|
| Maintainer Username: | qiuapeng921 |
| Maintainer Contact: | 1047871481@qq.com (qiuapeng921) |
| Package Create Date: | 2025-12-11 |
| Package Last Update: | 2025-12-11 |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-12-11 15:00:03 |
| Package Statistics | |
|---|---|
| Total Downloads: | 0 |
| Monthly Downloads: | 0 |
| Daily Downloads: | 0 |
| Total Stars: | 0 |
| Total Watchers: | 0 |
| Total Forks: | 0 |
| Total Open Issues: | 0 |
使用 Workerman 加速 Laravel/Lumen 应用,常驻内存模式提升 5-20 倍性能。
| 依赖 | 版本 | |------|----------------| | PHP | ^8.1 | | Laravel | ^10.0 | ^11.0 | | Lumen | ^10.0 | ^11.0 | | Workerman | ^5.0 |
composer require "qiuapeng921/laravel-workerman:2.x-dev"
发布配置文件和启动脚本:
php artisan vendor:publish --tag=workerman
这将发布:
config/workerman.php - 配置文件workerman.php - 启动脚本由于 Lumen 不支持 vendor:publish,需要手动复制文件:
# 复制配置文件
cp vendor/qiuapeng921/laravel-workerman/config/workerman.php config/workerman.php
# 复制启动脚本
cp vendor/qiuapeng921/laravel-workerman/workerman.php workerman.php
然后在 bootstrap/app.php 中注册服务提供者:
$app->register(Qiuapeng\LaravelWorkerman\WorkermanServiceProvider::class);
# 前台启动
php workerman.php start
# 后台启动(守护进程,仅 Linux/Mac)
php workerman.php start -d
# 自定义参数
php workerman.php --port=9000 --workers=8 --max=5000 --debug start
| 参数 | 短选项 | 说明 | 默认值 |
|------|--------|------|--------|
| --port | -p | 监听端口 | 8080 |
| --workers | -w | Worker 进程数 | 4 |
| --max | -m | 单个 Worker 最大请求数 | 10000 |
| --debug | - | 启用调试模式 | false |
# Linux/Mac
php workerman.php stop
# Windows
Ctrl+C
php workerman.php restart # 重启
php workerman.php reload # 平滑重载
php workerman.php status # 查看状态
编辑 config/workerman.php:
return [
// 监听地址
'host' => env('WORKERMAN_HOST', '0.0.0.0'),
// 监听端口
'port' => env('WORKERMAN_PORT', 8080),
// Worker 进程数(Windows 只能为 1)
'workers' => env('WORKERMAN_WORKERS', 4),
// 最大请求数(达到后 Worker 自动重启,防止内存泄漏)
'max_requests' => env('WORKERMAN_MAX_REQUESTS', 10000),
// 调试模式
'debug' => env('WORKERMAN_DEBUG', false),
// 进程名称
'name' => env('WORKERMAN_NAME', 'laravel-workerman'),
// 静态文件配置
'static' => [
'enable' => true,
'path' => base_path('public'),
],
// 日志配置
'log' => [
'file' => storage_path('logs/workerman.log'),
],
];
WORKERMAN_HOST=0.0.0.0
WORKERMAN_PORT=8080
WORKERMAN_WORKERS=4
WORKERMAN_MAX_REQUESTS=10000
WORKERMAN_DEBUG=false
WORKERMAN_NAME=laravel-workerman
src/
├── Bootstrap.php # 引导类 - 环境检查、参数解析
├── Config/
│ └── WorkermanConfig.php # 配置管理器 - 多级配置覆盖
├── Contracts/
│ └── FrameworkAdapter.php # 框架适配器接口
├── Adapters/
│ ├── AdapterFactory.php # 适配器工厂 - 自动检测框架类型
│ ├── LaravelAdapter.php # Laravel 适配器
│ └── LumenAdapter.php # Lumen 适配器
├── WorkermanServer.php # 服务器类 - Worker 生命周期管理
├── AppManager.php # 应用管理器 - 统一处理 Laravel/Lumen
├── StaticFileHandler.php # 静态文件处理器
├── Logger.php # 日志工具
└── WorkermanServiceProvider.php
项目使用适配器模式来兼容 Laravel 和 Lumen 两个框架:
┌─────────────────┐
│ AppManager │
└────────┬────────┘
│
┌────▼────┐
│ Factory │ ──── 自动检测框架类型
└────┬────┘
│
┌────┴────┐
│ │
┌───▼───┐ ┌───▼───┐
│Laravel│ │ Lumen │
│Adapter│ │Adapter│
└───────┘ └───────┘
核心差异处理:
| 特性 | Laravel | Lumen | |------|---------|-------| | HTTP Kernel | ✅ 有 | ❌ 无 | | Facade | 默认启用 | 需手动启用 | | config_path() | ✅ 有 | ❌ 无 | | vendor:publish | ✅ 有 | ❌ 无 |
php workerman.php reload 或重启服务stop、restart、reload、status 命令在 Lumen 中使用时,确保在 bootstrap/app.php 中启用 Facade(如果需要):
$app->withFacades();
在 Laravel/Lumen 项目中使用本地开发版本:
{
"repositories": [
{
"type": "path",
"url": "/path/to/laravel-workerman",
"options": { "symlink": true }
}
],
"require": {
"qiuapeng/workerman-laravel": "@dev"
}
}
| 模式 | QPS | 响应时间 | |------|-----|----------| | PHP-FPM | 500 | 20ms | | Workerman (Laravel) | 5000+ | 2ms | | Workerman (Lumen) | 8000+ | 1.5ms |
测试环境:4 核 CPU,8GB 内存,简单 API 请求
AppManager 统一管理 Laravel/Lumen 应用MIT