wen130 / framework
PHP framework
4.0.50
2026-08-04 02:10 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.10
- nikic/fast-route: ^1.3
- nyholm/psr7: ^1.8
- nyholm/psr7-server: ^1.1
- php-amqplib/php-amqplib: ^3.7.4
- psr/container: ^2.0
- psr/http-server-middleware: ^1.0
README
轻量级 PHP 框架,支持 Web(PHP-FPM) / Workerman / Workerman 协程 / Swoole / CLI 五种运行模式。生产环境已验证,非通用框架。
版本 4.0.19 | PHP >= 8.1 | Workerman 5.x / Swoole >= 5.0
特性
- 环境自适应:一套代码五模式无缝切换,协程混合部署(按端口独立开关)
- PSR 标准化:PSR-7 请求/响应、PSR-11 容器、PSR-15 中间件
- 路由系统:FastRoute 正则/规则路由 + 路由分组(前缀 + 中间件)
- 参数自动注入:控制器方法参数自动从
$_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 | AI / 长连接 |
| 🆕 Swoole | start_swoole.php | 原生 | 替代 Workerman 协程 |
| CLI | php task.php | — | 定时任务 |