swooletw/hyperf-packages

由SwooleTW维护的Laravel Hyperf包

dev-master 2024-09-23 04:17 UTC

This package is auto-updated.

Last update: 2024-09-23 04:18:44 UTC


README

Build Status Total Downloads Latest Stable Version License

简介

Laravel Hyperf 是一个基于 Hyperf 框架的Laravel风格的骨架,专为Laravel工匠设计。

除了Swoole带来的高性能外,它还采用了Laravel的目录结构和组件风格,并将许多常见的Laravel包如 AuthCacheConfigContainerCommandDatabaseEventFacadeRouterMiddlewareLogEncryptionHashing错误处理验证服务提供者BladeEloquentStringArrayCollection翻译测试 等,迁移为更符合协程友好的方式。如果你是Laravel开发者,你将在这个框架中感到宾至如归,只需要最少的额外学习。

为什么选择Laravel Hyperf?

虽然Laravel Octane令人印象深刻,并且显著提高了你的Laravel应用程序的速度和性能,但考虑现代Web应用程序的性质是很重要的。在大多数情况下,大部分延迟来自I/O操作,如读取文件、查询数据库和发起API请求。

如果你的应用程序严重依赖于慢速I/O操作,你可能仍然会遇到性能瓶颈。考虑以下场景

想象一下构建一个由人工智能驱动的聊天机器人,其中每个对话API需要3-5秒才能响应。如果你在Laravel Octane中有10个工作者,并接收10个并发请求,所有工作者都会一直忙碌,直到这些请求完成。

你可以查看 Laravel Octane和Laravel Hyperf之间的基准比较

在这种情况下,即使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许可证。