wen130 / framework
PHP framework
4.0.71
2026-10-13 08:05 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.10
- nikic/fast-route: ^1.3
- nyholm/psr7: ^1.8
- nyholm/psr7-server: ^1.1
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- 4.0.71
- 4.0.70
- 4.0.69
- 4.0.68
- 4.0.67
- 4.0.66
- 4.0.64
- 4.0.63
- 4.0.62
- 4.0.61
- 4.0.60
- 4.0.59
- 4.0.58
- 4.0.57
- 4.0.56
- 4.0.55
- 4.0.54
- 4.0.53
- 4.0.52
- 4.0.51
- 4.0.50
- 3.3.17
- 3.3.16
- 3.3.15
- 3.3.14
- 3.0.1
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0
This package is not auto-updated.
Last update: 2026-10-13 08:07:23 UTC
README
轻量级 PHP 框架,支持 Web(PHP-FPM) / Workerman / Workerman 协程 / Swoole / CLI 五种运行模式。生产环境已验证,非通用框架。
版本 4.0.71 | PHP >= 8.1 | Workerman 5.x / Swoole >= 6.0
特性
- 环境自适应:一套代码五模式无缝切换,协程混合部署(按端口独立开关)
- PSR 标准化:PSR-7 请求/响应、PSR-11 容器、PSR-15 中间件
- 路由系统:FastRoute 正则/规则路由 + 路由分组(前缀 + 中间件)
- 参数自动注入:控制器方法参数自动从协程隔离的
Request匹配(路由变量 + GET/POST),不读共享超全局$_GET/$_POST - 协程安全:Request/Session/Cookie/View/Dispatcher 按协程隔离(Swoole 原生 Context)
- 异常 HTTP 状态码:
throw new Exception('msg', 402)→ 自动 HTTP 402 - SSE 流式响应:
chunkedStart/sendChunk/chunkedEnd(Web / Workerman / Swoole 全支持) - Cookie 全环境:
Cookie::set()自动适配 Webheader()/ Workerman / SwooleSet-Cookie - 开发热重载:FileMonitor 文件变化自动重启(Workerman + Swoole 双实现)
- 内存泄漏防护:
max_request自动重启 worker,Workerman 额外支持memory_limit+gc_interval
安装
composer require wen130/framework
快速开始
// 入口文件 index.php
define('ROOT_PATH', str_replace('\\', '/', __DIR__) . '/');
require ROOT_PATH . 'vendor/autoload.php';
\framework\core\App::getInstance()->run();
# Web (PHP-FPM)
http://www.dev.com
# Workerman
php -c php.ini workerman/start_web_api.php start -d
# 🆕 Swoole
php -c php.ini workerman/start_swoole.php # 前台(开发)
php -c php.ini workerman/start_swoole.php -d # 后台(生产)
php -c php.ini workerman/start_swoole.php -d -p 8096 -w 1 # 指定端口 + 1进程(AI等大内存场景)
kill -USR1 $(cat cache/swoole{port}.pid) # 热重载
控制器示例
namespace www\action;
use framework\core\Action;
class index extends Action {
public function index() {
return ['ret' => 200, 'data' => null, 'msg' => 'ok'];
}
// 参数自动注入
public function search(string $keyword, int $page = 1) {
return $this->logic->search($keyword, $page);
}
// HTTP 状态码异常
public function check() {
if (!loggedIn()) throw new \Exception('请登录', 401);
}
}
运行模式
| 模式 | 命令 | 协程 | 适用 |
|---|---|---|---|
| Web (FPM) | Nginx → index.php | — | 传统 Web |
| Workerman | workerman/start_web_api.php | — | 同步 API(协程由 data/workerman.php 的 event_loop 控制) |
| Workerman 协程 | workerman/start_web_api.php | Fiber / Swoole 驱动 | AI / 长连接 |
| 🆕 Swoole | workerman/start_swoole.php | 原生 | 替代 Workerman 协程 |
| CLI | php index.php /api/task/<api>/<controller>/<action> | — | 定时任务 / 组件自测 |