hyperf / hyperf
一个专注于超速度和灵活性的协程框架。轻松构建微服务或中间件。
Requires
- php: >=8.1
- ext-bcmath: *
- ext-json: *
- ext-pdo: *
- ext-redis: *
- ext-swoole: >=5.0
- psr/container: ^1.0 || ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/http-server-middleware: ^1.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- doctrine/dbal: ^3.6
- doctrine/inflector: ^2.0
- doctrine/instantiator: ^1.0
- egulias/email-validator: ^3.0
- elasticsearch/elasticsearch: ^7.0
- ergebnis/composer-normalize: ^2.43
- fakerphp/faker: ^1.23
- fig/http-message-util: ^1.1.2
- filp/whoops: ^2.7
- friendsofphp/php-cs-fixer: ^3.63
- google/common-protos: ^3.2 || ^4.4
- google/protobuf: ^3.6.1
- grpc/grpc: ^1.15
- guzzlehttp/guzzle: ^6.3 || ^7.0
- hyperf/engine: ^2.11
- hyperf/token-bucket: ^2.0
- influxdb/influxdb-php: ^1.15.0
- ircmaxell/random-lib: ^1.2
- jcchavezs/zipkin-opentracing: ^2.0
- jean85/pretty-package-versions: ^2.0
- jetbrains/phpstorm-attributes: ^1.0
- jonahgeorge/jaeger-client-php: ^1.0
- laminas/laminas-mime: ^2.7
- league/flysystem: ^1.0 || ^2.0 || ^3.0
- league/flysystem-aws-s3-v3: ^1.0 || ^2.0 || ^3.0
- league/flysystem-memory: ^1.0 || ^2.0 || ^3.0
- league/plates: ^3.3
- longlang/phpkafka: ^1.2.3
- markrogoyski/math-php: ^2.0
- mix/redis-subscriber: ^3.0.4
- mockery/mockery: ^1.0
- monolog/monolog: ^2.7 || ^3.1
- multiplex/socket: ^1.0
- nesbot/carbon: ^2.0
- nikic/fast-route: ^1.3
- nikic/php-parser: ^4.1
- opentracing/opentracing: ^1.0
- php-amqplib/php-amqplib: ^3.5
- php-di/phpdoc-reader: ^2.2
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10.1.3
- predis/predis: ^1.1
- promphp/prometheus_client_php: ~2.2.0
- ramsey/uuid: ^4.7
- reactivex/rxphp: ^2.0
- rector/rector: ^0.17.0
- slickdeals/statsd: ^3.0.1
- smarty/smarty: ^3.1
- squizlabs/php_codesniffer: ^3.4
- swoole/ide-helper: dev-master
- swow/psr7-plus: ^1.0
- swow/swow: dev-develop
- sy-records/think-template: ^2.0
- symfony/console: ^5.0 || ^6.0
- symfony/event-dispatcher: ^5.0 || ^6.0
- symfony/finder: ^5.0 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/property-access: ^5.0 || ^6.0
- symfony/serializer: ^5.0 || ^6.0
- symfony/uid: ^5.0 || ^6.0
- symfony/var-dumper: ^5.0 || ^6.0
- thecodingmachine/graphqlite: ^7.0
- twig/twig: ^3.0
- vlucas/phpdotenv: ^5.0
- zircote/swagger-php: ^4.6
Replaces
- hyperf/amqp: *
- hyperf/async-queue: *
- hyperf/cache: *
- hyperf/carbon: *
- hyperf/circuit-breaker: *
- hyperf/code-parser: *
- hyperf/codec: *
- hyperf/collection: *
- hyperf/command: *
- hyperf/conditionable: *
- hyperf/config: *
- hyperf/config-aliyun-acm: *
- hyperf/config-apollo: *
- hyperf/config-center: *
- hyperf/config-etcd: *
- hyperf/config-nacos: *
- hyperf/config-zookeeper: *
- hyperf/constants: *
- hyperf/consul: *
- hyperf/context: *
- hyperf/contract: *
- hyperf/coordinator: *
- hyperf/coroutine: *
- hyperf/crontab: *
- hyperf/dag: *
- hyperf/database: *
- hyperf/database-pgsql: *
- hyperf/database-sqlite: *
- hyperf/db: *
- hyperf/db-connection: *
- hyperf/devtool: *
- hyperf/di: *
- hyperf/dispatcher: *
- hyperf/elasticsearch: *
- hyperf/etcd: *
- hyperf/event: *
- hyperf/exception-handler: *
- hyperf/filesystem: *
- hyperf/framework: *
- hyperf/graphql: *
- hyperf/grpc: *
- hyperf/grpc-client: *
- hyperf/grpc-server: *
- hyperf/guzzle: *
- hyperf/http-message: *
- hyperf/http-server: *
- hyperf/http2-client: *
- hyperf/ide-helper: *
- hyperf/json-rpc: *
- hyperf/kafka: *
- hyperf/load-balancer: *
- hyperf/logger: *
- hyperf/macroable: *
- hyperf/memory: *
- hyperf/metric: *
- hyperf/migration-generator: *
- hyperf/model-cache: *
- hyperf/model-listener: *
- hyperf/nacos: *
- hyperf/nats: *
- hyperf/nsq: *
- hyperf/paginator: *
- hyperf/phar: *
- hyperf/pipeline: *
- hyperf/pool: *
- hyperf/process: *
- hyperf/protocol: *
- hyperf/rate-limit: *
- hyperf/reactive-x: *
- hyperf/redis: *
- hyperf/resource: *
- hyperf/resource-grpc: *
- hyperf/retry: *
- hyperf/rpc: *
- hyperf/rpc-client: *
- hyperf/rpc-multiplex: *
- hyperf/rpc-server: *
- hyperf/rpn: *
- hyperf/scout: *
- hyperf/serializer: *
- hyperf/server: *
- hyperf/service-governance: *
- hyperf/service-governance-consul: *
- hyperf/service-governance-nacos: *
- hyperf/session: *
- hyperf/signal: *
- hyperf/snowflake: *
- hyperf/socket: *
- hyperf/socketio-server: *
- hyperf/stdlib: *
- hyperf/stringable: *
- hyperf/super-globals: *
- hyperf/support: *
- hyperf/swagger: *
- hyperf/tappable: *
- hyperf/task: *
- hyperf/testing: *
- hyperf/tracer: *
- hyperf/translation: *
- hyperf/utils: *
- hyperf/validation: *
- hyperf/view: *
- hyperf/view-engine: *
- hyperf/watcher: *
- hyperf/websocket-client: *
- hyperf/websocket-server: *
- dev-master
- 3.1.x-dev
- v3.1.41
- v3.1.40
- v3.1.39
- v3.1.38
- v3.1.37
- v3.1.36
- v3.1.35
- v3.1.34
- v3.1.33
- v3.1.32
- v3.1.31
- v3.1.30
- v3.1.29
- v3.1.28
- v3.1.27
- v3.1.26
- v3.1.25.1
- v3.1.25
- v3.1.24
- v3.1.23
- v3.1.22
- v3.1.21
- v3.1.20
- v3.1.19
- v3.1.18
- v3.1.17
- v3.1.16
- v3.1.15
- v3.1.14
- v3.1.13
- v3.1.12
- v3.1.11
- v3.1.10
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.1.0-rc.15
- v3.1.0-rc.14
- v3.1.0-rc.13
- v3.1.0-rc.12
- v3.1.0-rc.11
- v3.1.0-rc.10
- v3.1.0-rc.9
- v3.1.0-rc.8
- v3.1.0-rc.7
- v3.1.0-rc.6
- v3.1.0-rc.5
- v3.1.0-rc.4
- v3.1.0-rc.3
- v3.1.0-rc.2
- v3.1.0-rc.1
- v3.1.0-beta.14
- v3.1.0-beta.13
- v3.1.0-beta.12
- v3.1.0-beta.11
- v3.1.0-beta.10
- v3.1.0-beta.9
- v3.1.0-beta.8
- v3.1.0-beta.7
- v3.1.0-beta.6
- v3.1.0-beta.5
- v3.1.0-beta.4
- v3.1.0-beta.3
- v3.1.0-beta.2
- v3.1.0-beta.1
- v3.1.0-alpha.2
- v3.1.0-alpha.1
- 3.0.x-dev
- v3.0.49
- v3.0.48
- v3.0.47
- v3.0.46
- v3.0.45
- v3.0.44
- v3.0.43
- v3.0.42
- v3.0.41
- v3.0.40
- v3.0.39
- v3.0.38
- v3.0.37
- v3.0.36
- v3.0.35
- v3.0.34
- v3.0.33
- v3.0.32
- v3.0.31
- v3.0.30
- v3.0.29
- v3.0.28
- v3.0.27
- v3.0.26
- v3.0.25
- v3.0.24
- v3.0.23
- v3.0.22
- v3.0.21
- v3.0.20
- v3.0.19
- v3.0.18
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v3.0.0-rc.21
- v3.0.0-rc.20
- v3.0.0-rc.19
- v3.0.0-rc.18
- v3.0.0-rc.17
- v3.0.0-rc.16
- v3.0.0-rc.15
- v3.0.0-rc.14
- v3.0.0-rc.13
- v3.0.0-rc.12
- v3.0.0-rc.11
- v3.0.0-rc.10
- v3.0.0-rc.9
- v3.0.0-rc.8
- v3.0.0-rc.7
- v3.0.0-rc.6
- v3.0.0-rc.5
- v3.0.0-rc.4
- v3.0.0-rc.3
- v3.0.0-rc.2
- v3.0.0-rc.1
- v3.0.0-beta.14
- v3.0.0-beta.13
- v3.0.0-beta.12
- v3.0.0-beta.11
- v3.0.0-beta.10
- v3.0.0-beta.9
- v3.0.0-beta.8
- v3.0.0-beta.7
- v3.0.0-beta.6
- v3.0.0-beta.5
- v3.0.0-beta.3
- v3.0.0-beta.2
- v3.0.0-beta.1
- v3.0.0-alpha.12
- v3.0.0-alpha.11
- v3.0.0-alpha.10
- v3.0.0-alpha.9
- v3.0.0-alpha.8
- v3.0.0-alpha.7
- v3.0.0-alpha.6
- v3.0.0-alpha.5
- v3.0.0-alpha.4
- v3.0.0-alpha.3
- v3.0.0-alpha.2
- v3.0.0-alpha.1
- 2.2.x-dev
- v2.2.41
- v2.2.40
- v2.2.39
- v2.2.38
- v2.2.37
- v2.2.36
- v2.2.35
- v2.2.34
- v2.2.33
- v2.2.32
- v2.2.31
- v2.2.30
- v2.2.29
- v2.2.28
- v2.2.27
- v2.2.26
- v2.2.25
- v2.2.24
- v2.2.23
- v2.2.22
- v2.2.21
- v2.2.20
- v2.2.19
- v2.2.18
- v2.2.17
- v2.2.16
- v2.2.15
- v2.2.14
- v2.2.13
- v2.2.12
- v2.2.11
- v2.2.10
- v2.2.9
- v2.2.8
- v2.2.7
- v2.2.6
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.2.0-rc4
- v2.2.0-rc3
- v2.2.0-rc2
- v2.2.0-rc1
- v2.2.0-beta2
- v2.2.0-beta1
- v2.2.0-alpha
- 2.1.x-dev
- v2.1.23
- v2.1.22
- v2.1.21
- v2.1.20
- v2.1.19
- v2.1.18
- v2.1.17
- v2.1.16
- v2.1.15
- v2.1.14
- v2.1.13
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.1.0-beta3
- v2.1.0-beta1
- 2.0.x-dev
- v2.0.25
- v2.0.24
- v2.0.23
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.1.x-dev
- v1.1.32
- v1.1.31
- v1.1.30
- v1.1.29
- v1.1.28
- v1.1.27
- v1.1.26
- v1.1.25
- v1.1.24
- v1.1.23
- v1.1.22
- v1.1.21
- v1.1.20
- v1.1.19
- 1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- 1.0.x-dev
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
This package is auto-updated.
Last update: 2024-09-23 05:14:32 UTC
README
英文 | 中文
简介
Hyperf 是一个性能极优且灵活的 PHP CLI 框架,由最先进的协程服务器和大量经过实战考验的组件提供支持。除了在基准测试中决定性地击败 PHP-FPM 框架外,Hyperf 还专注于灵活性和组合。Hyperf 随带一个启用 AOP(面向方面编程)的依赖注入器,以确保组件和类是可插拔和元编程的。Hyperf 的所有核心组件都严格遵循 PSR 标准,并可用于其他框架。
Hyperf 的架构是通过结合 协程
、依赖注入
、事件
、注解
和 AOP
来构建的。除了提供 MySQL
、Redis
等常用协程客户端外,Hyperf
还提供了协程兼容版本的 WebSocket 服务器/客户端
、JSON RPC 服务器/客户端
、gRPC 服务器/客户端
、Zipkin/Jaeger (OpenTracing) 客户端
、Guzzle HTTP 客户端
、Elasticsearch 客户端
、Consul 客户端
、ETCD 客户端
、AMQP 组件
、Apollo 配置中心
、阿里云 ACM
、ETCD 配置中心
、基于令牌桶算法的限流器、通用连接池
、断路器
、Swagger
、Snowflake
、Simple Redis MQ
、RabbitMQ
、NSQ
、Nats
、秒级 crontab
、自定义进程
等。因此,开发人员可以完全避免实现这些库的协程兼容版本。
请放心,Hyperf 仍然是一个 PHP 框架。Hyperf 提供了您期望的所有包:中间件
、事件管理器
、协程优化 Eloquent ORM
(以及模型缓存!)、翻译
、验证
、视图引擎(Blade/Smarty/Twig/Plates/ThinkTemplate)
等等。
起源
尽管有许多新的 PHP 框架,但我们还没有找到一个既具有优雅的设计又具有超高性能的框架,也没有找到一个为 PHP 微服务铺路的框架。带着这个愿景,我们将继续投资于这个框架的未来,欢迎您加入我们,为 Hyperf 的开源开发做出贡献。
设计目标
超速度 + 灵活性 = Hyperf
。隐藏在我们名字中的等式展示了 Hyperf 的创始雄心。
超速度:利用 Swoole
和 Swow
协程,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团队。所有安全漏洞都将得到及时处理。
代码贡献者
这个项目得以存在,多亏了所有贡献者。[贡献].
随着时间的推移代码贡献者
财务贡献者
成为财务贡献者,帮助我们维持我们的社区。[贡献]
用您的组织或公司支持此项目。您的标志将显示在这里,并带有链接到您的网站。[贡献]
性能
阿里云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应用程序。
随着时间的推移星标数量
许可证
Hyperf框架是MIT许可证下的开源软件。