swooletw / hyperf-packages
由SwooleTW维护的Laravel Hyperf包
Requires
- php: >=8.1
- ext-hash: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-pdo: *
- friendsofhyperf/command-signals: ~3.1.0
- hyperf/async-queue: ~3.1.0
- hyperf/cache: ~3.1.0
- hyperf/command: ~3.1.0
- hyperf/config: ~3.1.0
- hyperf/crontab: ~3.1.0
- hyperf/database-sqlite: ~3.1.0
- hyperf/db-connection: ~3.1.0
- hyperf/engine: ^2.10
- hyperf/framework: ~3.1.0
- hyperf/guzzle: ~3.1.0
- hyperf/http-server: ~3.1.0
- hyperf/memory: ~3.1.0
- hyperf/process: ~3.1.0
- hyperf/signal: ~3.1.0
- hyperf/translation: ~3.1.0
- hyperf/validation: ~3.1.0
- laravel/serializable-closure: ^1.3
- lcobucci/jwt: ^5.0
- monolog/monolog: ^3.1
- nesbot/carbon: ^2.16
- ramsey/uuid: ^4.7
- symfony/error-handler: ^6.3
Requires (Dev)
- fakerphp/faker: ^2.0
- filp/whoops: ^2.15
- friendsofphp/php-cs-fixer: ^3.57.2
- hyperf/devtool: ~3.1.0
- hyperf/redis: ~3.1.0
- hyperf/testing: ~3.1.0
- hyperf/view-engine: ~3.1.0
- league/flysystem: ^3.0
- mockery/mockery: ^1.5.1
- phpstan/phpstan: ^1.11.5
- phpunit/phpunit: ^10.0.7
- swoole/ide-helper: ~5.1.0
Suggests
- friendsofhyperf/tinker: Required to use the tinker console command (^3.1).
- hyperf/redis: Required to use redis driver. (^3.1).
- hyperf/session: Required to use session guard. (^3.1).
Replaces
- swooletw/hyperf-auth: dev-master
- swooletw/hyperf-cache: dev-master
- swooletw/hyperf-config: dev-master
- swooletw/hyperf-container: dev-master
- swooletw/hyperf-cookie: dev-master
- swooletw/hyperf-devtool: dev-master
- swooletw/hyperf-dispatcher: dev-master
- swooletw/hyperf-encryption: dev-master
- swooletw/hyperf-event: dev-master
- swooletw/hyperf-foundation: dev-master
- swooletw/hyperf-framework: dev-master
- swooletw/hyperf-hashing: dev-master
- swooletw/hyperf-http: dev-master
- swooletw/hyperf-jwt: dev-master
- swooletw/hyperf-log: dev-master
- swooletw/hyperf-object-pool: dev-master
- swooletw/hyperf-router: dev-master
- swooletw/hyperf-support: dev-master
This package is auto-updated.
Last update: 2024-09-23 04:18:44 UTC
README
简介
Laravel Hyperf 是一个基于 Hyperf 框架的Laravel风格的骨架,专为Laravel工匠设计。
除了Swoole带来的高性能外,它还采用了Laravel的目录结构和组件风格,并将许多常见的Laravel包如 Auth
、Cache
、Config
、Container
、Command
、Database
、Event
、Facade
、Router
、Middleware
、Log
、Encryption
、Hashing
、错误处理
、验证
、服务提供者
、Blade
、Eloquent
、String
、Array
、Collection
、翻译
、测试
等,迁移为更符合协程友好的方式。如果你是Laravel开发者,你将在这个框架中感到宾至如归,只需要最少的额外学习。
为什么选择Laravel Hyperf?
虽然Laravel Octane令人印象深刻,并且显著提高了你的Laravel应用程序的速度和性能,但考虑现代Web应用程序的性质是很重要的。在大多数情况下,大部分延迟来自I/O操作,如读取文件、查询数据库和发起API请求。
如果你的应用程序严重依赖于慢速I/O操作,你可能仍然会遇到性能瓶颈。考虑以下场景
想象一下构建一个由人工智能驱动的聊天机器人,其中每个对话API需要3-5秒才能响应。如果你在Laravel Octane中有10个工作者,并接收10个并发请求,所有工作者都会一直忙碌,直到这些请求完成。
在这种情况下,即使Laravel Octane有所改进,你的应用程序处理并发请求的能力仍然受到这些I/O操作持续时间的限制。Laravel Hyperf通过利用协程解决了这个问题,允许高效地处理并发I/O操作,而不会阻塞工作者。这种方法可以显著提高对I/O需求高的应用程序的性能和并发性。
对于I/O密集型场景,Laravel Octane可能不会显著提高性能。此外,考虑到只有Swoole运行时目前支持此功能,以及与框架和第三方包的向后兼容性,Laravel Octane在不久的将来不太可能支持协程(见 此问题)。
即使Laravel Octane支持协程,这些协程仍然仅限于单个请求,工作者会一直阻塞,直到该请求中的所有I/O操作完成。这意味着你的Laravel应用程序在这种情况下不能得到更好的QPS结果。
有关更多信息,请参阅 此拉取请求
Laravel Hyperf 的目标是在保持熟悉的Laravel开发实践的同时,帮助Laravel工匠享受Hyperf的高性能。它与Hyperf包兼容,确保开发者可以共享相同的生态系统和社区。我们鼓励开发者为Hyperf项目做出贡献,从而同时为Hyperf和 Laravel Hyperf 带来益处。
文档
https://laravel-hyperf.com/docs
Hyperf Laravel提供全面且用户友好的文档,让您能够快速上手。通过这份文档,您可以了解如何使用Hyperf Laravel中的各种组件,并理解该框架与Laravel之间的区别。
本文档的大部分内容参考自官方Laravel文档。我们感谢Laravel社区的贡献。
许可证
Hyperf Laravel框架是开源软件,采用MIT许可证。