Download the PHP package yangweijie/think-runtime without Composer
On this page you can find all versions of the php package yangweijie/think-runtime. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yangweijie/think-runtime
More information about yangweijie/think-runtime
Files in yangweijie/think-runtime
Package think-runtime
Short Description 高性能环境下运行的ThinkPHP Runtime扩展包,支持Swoole、RoadRunner、FrankenPHP等多种运行时
License MIT
Informations about the package think-runtime
ThinkPHP Runtime 扩展包
高性能环境下运行的ThinkPHP Runtime扩展包,支持Swoole、RoadRunner、FrankenPHP等多种运行时环境。
特性
- 🚀 高性能: 支持Swoole、RoadRunner、ReactPHP、FrankenPHP、Workerman、Bref、Vercel等多种运行时
- 🔄 自动检测: 自动检测并选择最佳运行时环境
- 🛠 易于配置: 简单的配置文件管理
- 🧪 完整测试: 使用Pest测试框架,确保代码质量
- 📦 PSR标准: 遵循PSR-7、PSR-15等标准
- 🎯 ThinkPHP规范: 严格遵循ThinkPHP8.0开发规范
- 🛡️ 安全增强: 内置安全防护、CORS支持、静态文件安全检查
- 📊 性能监控: 请求时间统计、慢请求记录、内存使用监控
- 🔌 中间件系统: 灵活的中间件支持,可扩展功能
- 🌐 WebSocket支持: 完整的WebSocket服务器功能(Swoole)
- 📁 静态文件服务: 高效的静态资源处理能力
支持的运行时
运行时 | 描述 | 优先级 | 要求 |
---|---|---|---|
Swoole | 基于Swoole的高性能HTTP服务器 | 100 | ext-swoole |
FrankenPHP | 现代PHP应用服务器,支持HTTP/2、HTTP/3 | 95 | frankenphp 二进制文件 |
Workerman | 高性能PHP socket服务器框架 | 93 | workerman/workerman |
ReactPHP | 事件驱动的异步HTTP服务器 | 92 | react/http, react/socket |
RoadRunner | 基于Go的高性能应用服务器 | 90 | spiral/roadrunner |
Bref | AWS Lambda serverless运行时 | 85 | bref/bref |
Vercel | Vercel serverless functions运行时 | 80 | vercel/php |
安装
要求
- PHP >= 8.0
- ThinkPHP >= 8.0
安装步骤
故障排除
1. 命令不可用
如果安装后没有看到runtime命令,请尝试以下解决方案:
2. ReactPHP 依赖问题
如果使用 ReactPHP 运行时遇到 Class "RingCentral\Psr7\Request" not found
错误:
3. Swoole 进程问题
如果 Swoole 运行时出现 Worker 进程退出:
快速开始
1. 配置
在ThinkPHP应用的config
目录下创建runtime.php
配置文件:
2. 启动服务器
3. 查看运行时信息
使用示例
基本使用
自定义适配器
配置说明
Swoole配置
FrankenPHP配置
ReactPHP配置
RoadRunner配置
RoadRunner配置
Workerman配置
Bref配置
Vercel配置
RoadRunner 运行指南
1. 安装依赖
2. 创建 RoadRunner 配置文件
在项目根目录创建 .rr.yaml
配置文件:
3. 创建 Worker 文件
在项目根目录创建 worker.php
文件:
4. 启动 RoadRunner 服务
5. 管理 RoadRunner 服务
6. 性能优化
可以通过调整 .rr.yaml
中的以下配置来优化性能:
运行时可用性要求
要让每个运行时在 php think runtime:info
中显示 "Available: Yes",需要满足以下条件:
Swoole Runtime
要求:
- 安装 Swoole PHP 扩展
- Swoole\Server 类可用
安装步骤:
配置: 在 php.ini 中添加:
FrankenPHP Runtime
要求:
- 在 FrankenPHP 环境中运行,或
- 系统中安装了 FrankenPHP 二进制文件
安装步骤:
环境变量(可选):
Workerman Runtime
要求:
- Workerman\Worker 类可用
安装步骤:
ReactPHP Runtime
要求:
- React\EventLoop\Loop 类可用
- React\Http\HttpServer 类可用
- React\Socket\SocketServer 类可用
- React\Http\Message\Response 类可用
- React\Promise\Promise 类可用
安装步骤:
Ripple Runtime
要求:
- PHP 8.1+ (支持 Fiber)
- Ripple\Http\Server 或 Ripple\Server\Server 类可用,或
- ripple_server_create 函数可用
安装步骤:
RoadRunner Runtime
要求:
- Spiral\RoadRunner\Worker 类可用
- Spiral\RoadRunner\Http\PSR7Worker 类可用
- RR_MODE 环境变量设置
安装步骤:
Bref Runtime
要求:
- 在 AWS Lambda 环境中运行,或
- Bref\Context\Context 类可用,或
- Runtime\Bref\Runtime 类可用
安装步骤:
AWS Lambda 环境变量(自动设置):
Vercel Runtime
要求:
- 在 Vercel 环境中运行,或
- vercel_request 函数可用,或
- VERCEL 或 VERCEL_ENV 环境变量设置
安装步骤:
Vercel 环境变量(自动设置):
故障排除
常见问题:
-
Swoole 显示 "Not Available":
-
FrankenPHP 显示 "Not Available":
-
Composer 包未找到:
- 权限问题:
命令行工具
runtime:start
启动运行时服务器
参数:
runtime
: 运行时名称 (swoole, reactphp, frankenphp, ripple, roadrunner, workerman, bref, vercel, auto)
选项:
--host, -H
: 服务器地址 (默认: 0.0.0.0)--port, -p
: 服务器端口 (默认: 9501)--daemon, -d
: 守护进程模式--workers, -w
: Worker进程数 (默认: 4)--debug
: 启用调试模式
示例:
runtime:info
显示运行时环境信息
显示内容包括:
- 当前可用的运行时
- 各运行时的支持状态
- 推荐的运行时配置
- 性能优化建议
命令行工具改进
v1.3.0 重大优化
-
代码结构优化:
- 将RuntimeStartCommand中的if-else链重构为switch语句
- 提高代码可读性和维护性
- 更清晰的runtime处理逻辑
-
新runtime支持:
- 完整支持Bref、Vercel、Workerman runtime
- 智能参数处理,根据runtime类型自动调整选项
- 专门的serverless环境适配
-
参数处理优化:
- Workerman:
--workers
自动转换为count
参数 - Bref/Vercel: 自动移除不适用的选项(host, port, workers, daemon)
- FrankenPHP:
--host
和--port
自动合并为listen
参数 - ReactPHP: 自动移除不支持的
workers
选项 - RoadRunner: 自动移除不适用的网络选项
- Workerman:
- 启动信息显示:
- 每个runtime都有专门的信息显示格式
- Serverless runtime显示环境信息
- 传统runtime显示网络和进程信息
测试
使用Pest测试框架:
开发规范
本项目严格遵循ThinkPHP8.0开发规范:
- 遵循PSR-2命名规范和PSR-4自动加载规范
- 目录使用小写+下划线
- 类名采用驼峰法(首字母大写)
- 方法名使用驼峰法(首字母小写)
- 属性名使用驼峰法(首字母小写)
- 常量使用大写字母和下划线
许可证
MIT License
性能优化建议
Swoole 性能优化
-
进程配置:
-
静态文件优化:
- 监控配置:
ReactPHP 性能优化
-
连接管理:
- 内存优化:
Workerman 性能优化
-
进程配置:
-
静态文件优化:
- 监控配置:
Bref/Vercel 性能优化
-
Lambda/Serverless配置:
- 冷启动优化:
通用优化建议
-
PHP配置:
- 启用OPcache
- 设置合适的内存限制
- 优化垃圾回收设置
-
系统配置:
- 调整系统文件描述符限制
- 优化TCP内核参数
- 使用SSD存储
- 应用优化:
- 使用数据库连接池
- 实现缓存策略
- 优化数据库查询
故障排除
常见问题
-
Swoole扩展未安装:
-
ReactPHP依赖缺失:
-
调试工具条时间累加:
- 已在v1.1.0版本修复
- 自动重置全局状态和调试信息
-
端口被占用:
- 权限问题:
贡献
欢迎提交Issue和Pull Request!
贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开 Pull Request
开发环境
更新日志
v1.3.0 (最新)
- 🆕 新增 Bref 和 Vercel 适配器:
- Bref: AWS Lambda serverless运行时支持
- Vercel: Vercel serverless functions运行时支持
- 自动环境检测和配置优化
- 完整的serverless环境适配
- 🛠 RuntimeStartCommand 重大优化:
- 将if-else链重构为switch语句,提高代码可读性
- 添加对所有新runtime的完整支持
- 优化命令行参数处理逻辑
- 改进启动信息显示,支持所有runtime类型
- 🐛 测试修复:
- 修复FrankenphpAdapterTest环境检测测试
- 提高测试在不同系统环境中的稳定性
- 完善测试覆盖率,确保代码质量
v1.2.0
- 🆕 新增 Workerman 适配器:
- 多进程架构,充分利用多核CPU
- 事件驱动的高效I/O处理
- 内置静态文件服务器
- 完整的中间件系统支持
- 性能监控和慢请求记录
- 定时器支持,后台任务处理
- 平滑重启,零停机部署
- 内存监控,防止内存泄漏
v1.1.0
- 🚀 Swoole适配器重大改进:
- 新增协程上下文管理,提升并发安全性
- 实现PSR-7工厂复用,减少内存使用20-30%
- 添加中间件系统支持(CORS、安全头等)
- 集成静态文件服务,响应速度提升50-80%
- 新增WebSocket支持,实现实时通信功能
- 添加性能监控和慢请求记录
- 增强安全防护,防止目录遍历攻击
- 🛠 ReactPHP适配器优化:
- 修复setTimeout方法调用错误
- 添加依赖包自动安装
- 优化错误处理机制
- 🐛 调试工具条修复:
- 解决think-trace运行时间累加问题
- 添加全局状态重置机制
- 修复Swoole常驻内存环境中调试信息累积导致的内存和耗时异常上涨
- 实现定期深度调试状态重置,确保长期运行稳定性
- 优化常驻内存运行时的状态管理
- 📚 文档完善:
- 新增RoadRunner详细配置指南
- 添加性能优化建议
- 完善故障排除文档
v1.0.0
- 初始版本发布
- 支持Swoole、RoadRunner、ReactPHP、FrankenPHP、Ripple运行时
- 提供命令行工具
- 完整的测试覆盖
- 自动检测最佳运行时环境
All versions of think-runtime with dependencies
nyholm/psr7 Version ^1.3
nyholm/psr7-server Version ^1.0
psr/http-message Version ^1.0|^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
topthink/framework Version ^8.0
topthink/think-orm Version 3.*