有什么区别:
它们有何不同以及使用的典型用例是什么?
它们之间的主要区别在于 Guzzle 是 HTTP 客户端,而 Amp 和 ReactPHP 是通用异步/事件循环库。这两者都基于它们提供的核心事件循环提供 HTTP 客户端。那些是amphp/artax
和reactphp/http-client
。
现在,它们和 Guzzle 之间的区别在于它们可以同时执行其他不是 HTTP 请求的事情。也就是说,因为用户可以完全控制事件循环,并且可以注册自己的 I/O 观察者和计时器,而 Guzzle 使用的事件循环在 Curl 中对用户隐藏。
如果你只想发出几个并发的 HTTP 请求,决定主要归结为你喜欢的 API 和性能考虑。如果您想同时做其他与 I/O 相关的事情,请使用 Amp 或 ReactPHP。如果你想流式传输你的身体,我也建议不要使用 Guzzle。
嘿 ReactPHP 核心团队成员。ReactPHP 和 Amp 都假设您正在构建一个带有事件循环的应用程序。如果你只想做一堆异步请求然后继续,我建议使用 Guzzle 的异步请求:http ://docs.guzzlephp.org/en/stable/quickstart.html#async-requests
如果您想更深入地研究异步请求,我建议https://github.com/clue/php-buzz-react,它可以让您更好地控制流程,而且它支持 PSR-7。