在我的应用程序中,我最初开始使用 cURL 从各种 API 检索数据。今天,我尝试使用 Guzzle 来完成同样的任务。到目前为止,cURL 和 Guzzle 似乎都工作得同样好。
从 Github 来看,很多人似乎都喜欢 Guzzle,但我不太明白为什么。
我的问题:
对于我的情况(从各种 API 检索数据),使用 Guzzle 更好吗?如果我使用 cURL 而不是 Guzzle(反之亦然),我最终会后悔吗?
我正在使用 PHP/Laravel。
原文由 Cato Minor 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么要使用 Guzzle?
首先,Guzzle 是 http 请求的抽象层,虽然它默认使用 cURL,但您可以使用任何其他您想要的 http 客户端:
由于您使用的是 Laravel,如果您有任何机会使用任何电子邮件 API,那么现在您已经安装了 Guzzle。在你的 Laravel 的 composer.json 你可以看到一个建议:
另一个原因是重用代码,看看 bogdan 的评论,用 cURL 做一个简单的 http 请求需要多少代码。 Guzzle 更简单、更清晰、可读和可重用。创建一个封装您的 Http 请求的服务非常容易。
Guzzle 还允许您执行 异步请求,这与您使用 promises 处理 javascript 的方式非常相似。
最后但同样重要的是,测试!与使用 cURL 相比,使用 Guzzle 对 API 进行测试或为应用程序创建单元测试并模拟 http 请求要容易得多。有关测试的更多信息,请 点击此处
但是,如果您只想执行 几个 简单的 http 请求(似乎并非如此),那么您不关心测试,也不希望依赖于 Guzzle go for cURL。