Workerman是一款开源高性能纯PHP开发的开源高性能的PHP 应用容器。它大大突破了传统PHP应用范围,被广泛的用于互联网、即时通讯、APP开发、硬件通讯、智能家居、物联网等领域的开发。
Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的php-fpm等等。Workerman可以说是PHP领域的一次创新,让开发者彻底摆脱了PHP只能做WEB的束缚。
实际上Workerman类似一个PHP版本的nginx,核心也是多进程+Epoll+非阻塞IO。Workerman每个进程能维持上万并发连接。由于本身常驻内存,不依赖Apache、nginx、php-fpm这些容器,拥有超高的性能。同时支持TCP、UDP、UNIXSOCKET,支持长连接,支持Websocket、HTTP、WSS、HTTPS等通讯协议以及各种自定义协议。拥有定时器、异步socket客户端、异步Redis、异步Http、异步消息队列等众多高性能组件。
更新日志在 #950 中改进测试在 #951 中将Windows和Mac OS添加到测试修正:优雅的停止和标准化的代码格式在 #952修复了onWorkerStop无法触发的bug。在 #959在 #961 中更新了Swoole TcpConnection在 #968 中更新worker第一个类可调用语法由在 #972更新Event.php通过在 #965重构:在 #975 中改进类型定义测试中的网络设置,在 #973 中重构:在 #976 中合并空分配从phpstan中删除了一些错误,并在 #979 中解决这些错误更新$eventLoopClass初始化过程。在 #980在 #978 中的所有事件类中实现错误处理事件在 #981 中完成测试改进:Udp和WebSocket服务器代码存根在 #983 中移出到Stub目录输出流现在可以在 #984 中使用$outputStream属性设置临时文件处理重构由在 #982在resetStd中修复以在 #986 中关闭STDOUT和STDERR修复了当tty装饰不可用时safeEcho从不打印输出的问题。在 #990worker:允许在 #993 中将logFile设置为/dev/null修复 #997 中反序列化返回假时的错误在 #1019 中将pids添加到.gitignore常量版本由 #1020 中的改进了 #1026 中进程退出和php select超过file descr. by时的日志记录在 #1011 中将工作模式信息添加到统计文件修复(TCP):HTTP代理设置由在 #1029将application/wasm添加到mime.types by in #1032修复PHP 8.4中的显式空值问题修复PHP 8.4中的空值问题 #1047响应构造使用属性提升通过在 #1050属性推广在 #1049新的贡献者@luzrain made their first contribution in #972@imlinfly made their first contribution in #965@vanodevium made their first contribution in #993@tourze made their first contribution in #997@lengqiuqiuqiu made their first contribution in #1011@roiwk made their first contribution in #1029@NitronPlus made their first contribution in #1032