hyperf/hyperf

一个专注于超速度和灵活性的协程框架。轻松构建微服务或中间件。

v3.1.41 2024-09-19 13:09 UTC

This package is auto-updated.

Last update: 2024-09-23 05:14:32 UTC


README

英文 | 中文

Hyperf Logo

Stable Version Php Version Swoole Version Hyperf License

PHPUnit for Hyperf Total Downloads Monthly Downloads

简介

Hyperf 是一个性能极优且灵活的 PHP CLI 框架,由最先进的协程服务器和大量经过实战考验的组件提供支持。除了在基准测试中决定性地击败 PHP-FPM 框架外,Hyperf 还专注于灵活性和组合。Hyperf 随带一个启用 AOP(面向方面编程)的依赖注入器,以确保组件和类是可插拔和元编程的。Hyperf 的所有核心组件都严格遵循 PSR 标准,并可用于其他框架。

Hyperf 的架构是通过结合 协程依赖注入事件注解AOP 来构建的。除了提供 MySQLRedis 等常用协程客户端外,Hyperf 还提供了协程兼容版本的 WebSocket 服务器/客户端JSON RPC 服务器/客户端gRPC 服务器/客户端Zipkin/Jaeger (OpenTracing) 客户端Guzzle HTTP 客户端Elasticsearch 客户端Consul 客户端ETCD 客户端AMQP 组件Apollo 配置中心阿里云 ACMETCD 配置中心、基于令牌桶算法的限流器、通用连接池断路器SwaggerSnowflakeSimple Redis MQRabbitMQNSQNats秒级 crontab自定义进程 等。因此,开发人员可以完全避免实现这些库的协程兼容版本。

请放心,Hyperf 仍然是一个 PHP 框架。Hyperf 提供了您期望的所有包:中间件事件管理器协程优化 Eloquent ORM(以及模型缓存!)、翻译验证视图引擎(Blade/Smarty/Twig/Plates/ThinkTemplate)等等。

起源

尽管有许多新的 PHP 框架,但我们还没有找到一个既具有优雅的设计又具有超高性能的框架,也没有找到一个为 PHP 微服务铺路的框架。带着这个愿景,我们将继续投资于这个框架的未来,欢迎您加入我们,为 Hyperf 的开源开发做出贡献。

设计目标

超速度 + 灵活性 = Hyperf。隐藏在我们名字中的等式展示了 Hyperf 的创始雄心。

超速度:利用 SwooleSwow 协程,Hyperf 能够处理大量的流量。Hyperf 团队对框架进行了许多优化,以消除用户和我们的引擎之间的一切瓶颈。

灵活性:我们相信我们的依赖注入组件是最好的。借助 Hyperf DI,组件和类都是可插拔和元编程的。相反,所有 Hyperf 组件都旨在与世界共享。我们致力于 PSR 标准,这意味着您可以在任何兼容的框架中使用 Hyperf 组件。

通过这些特性,Hyperf在许多领域发现了未开发的潜力:实现Web服务器、网关服务器、分布式中间件软件、微服务架构、游戏服务器和物联网(IoT)。

运行环境

  • Linux、OS X或Cygwin、WSL、Windows
  • PHP 8.1+
  • Swoole 5.0+或Swow 1.4+

生产就绪

除了我们维护良好的多语言文档外,每个组件的大量单元测试也确保了逻辑的正确性。在Hyperf(2019-06-20)发布之前,它已被一些中型和大型互联网公司用于多个服务,这些服务在恶劣的生产环境中已经稳定运行多年。

官方网站和文档

官方网站 https://hyperf.io
文档 https://hyperf.wiki

安全漏洞

如果您在Hyperf中发现安全漏洞,请通过group@hyperf.io将电子邮件发送给Hyperf团队。所有安全漏洞都将得到及时处理。

代码贡献者

这个项目得以存在,多亏了所有贡献者。[贡献].

随着时间的推移代码贡献者

Code Contributor over time

财务贡献者

成为财务贡献者,帮助我们维持我们的社区。[贡献]

用您的组织或公司支持此项目。您的标志将显示在这里,并带有链接到您的网站。[贡献]

性能

阿里云8核16G内存

命令: wrk -c 1024 -t 8 http://127.0.0.1:9501/

Running 10s test @ http://127.0.0.1:9501/
  8 threads and 1024 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdevs
    Latency    10.08ms    6.82ms  56.66ms   70.19%
    Req/Sec    13.17k     5.94k   33.06k    84.12%
  1049478 requests in 10.10s, 190.16MB read
Requests/sec: 103921.49
Transfer/sec:     18.83MB

Hyperf生态系统

  • 🧬 Nano是一个零配置、无骨架、最小化的Hyperf发行版,允许您仅使用单个PHP文件快速构建Hyperf应用程序。
  • ⚡️ GoTask是一个库,它将Go进程作为Swoole边车启动,并建立双向IPC,以将繁重的工作卸载到Go。将其视为Go中的Swoole Taskworker。
  • 🚀 Jet是一个统一模型RPC客户端,内置JSONRPC协议,适用于所有PHP环境,包括PHP-FPM和Swoole/Hyperf环境。
  • 🧰 Box致力于提高Hyperf应用程序的编程体验,管理PHP环境和相关依赖项,提供将Hyperf应用程序打包为二进制程序的能力,同时还提供反向代理服务来管理和部署Hyperf应用程序。

随着时间的推移星标数量

Stargazers over time

许可证

Hyperf框架是MIT许可证下的开源软件。