PHP-为什么要使用Guzzle而不是cURL?

PHP-为什么要使用Guzzle而不是cURL?,php,laravel,curl,guzzle,Php,Laravel,Curl,Guzzle,在我的应用程序中,我最初开始使用cURL从各种api检索数据。今天,我试着用Guzzle来完成同样的任务。到目前为止,卷曲和狂饮似乎都同样有效 根据我的判断,很多人似乎喜欢狂饮,但我真的不明白为什么 我的问题: 在我的情况下(从各种API检索数据),是否最好使用Guzzle?如果我用卷发代替口吻(或者反过来),我最终会后悔吗? 我使用的是PHP/Laravel。Guzzle是HTTP传输的抽象层,在可用的情况下,它碰巧使用了cURL 正如上面提到的,虽然你可以用cURL自己做任何事情,但Guzz

在我的应用程序中,我最初开始使用cURL从各种api检索数据。今天,我试着用Guzzle来完成同样的任务。到目前为止,卷曲和狂饮似乎都同样有效

根据我的判断,很多人似乎喜欢狂饮,但我真的不明白为什么

我的问题:

在我的情况下(从各种API检索数据),是否最好使用Guzzle?如果我用卷发代替口吻(或者反过来),我最终会后悔吗?


我使用的是PHP/Laravel。

Guzzle是HTTP传输的抽象层,在可用的情况下,它碰巧使用了cURL

正如上面提到的,虽然你可以用cURL自己做任何事情,但Guzzle极大地简化了事情,特别是在调试方面。

为什么要使用Guzzle

首先,Guzzle是http请求的抽象层,尽管它默认使用cURL,但您可以使用任何其他您想要的http客户端:

狂饮需要卷曲吗?

不可以。Guzzle可以使用任何HTTP处理程序发送请求。这意味着 Guzzle可以与cURL、PHP的流包装器、套接字和 像React这样的非阻塞库。您只需要配置一个HTTP 处理程序使用不同的方法发送请求

注意:Guzzle过去只使用cURL发送HTTP请求。 cURL是一个了不起的HTTP客户机(可以说是最好的),Guzzle也会 当它可用时,默认情况下继续使用它。这是罕见的,但是 一些开发人员没有在他们的系统上安装cURL,或者没有遇到 特定版本的问题。通过允许可交换的HTTP处理程序,Guzzle 现在更加可定制,能够适应客户的需求 更多的开发者

由于您使用的是Laravel,如果您有机会使用任何电子邮件API,那么现在您已经安装了Guzzle。在您的Laravel的composer.json上,您可以看到一个建议:

"suggest": {
    ...
    "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).",
    ...
}
另一个原因是重用代码,请查看使用cURL执行简单http请求所需的代码量。使用Guzzle更简单、更干净、可读性更强、可重复使用。创建一个封装Http请求的服务非常容易

Guzzle还允许您这样做,就像使用承诺使用javascript所做的那样

最后但并非最不重要的是,测试!对API进行测试或为应用程序创建单元测试并用Guzzle模拟http请求比使用cURL更容易。有关测试的更多信息


但是如果你只想做一些简单的http请求(事实似乎并非如此)您不关心测试,也不想依赖Guzzle,选择cURL。

Guzzle就是cURL,就像axios对XMLHttpRequest一样。

如果可能,Guzzle在内部使用cURL,因此它不像包装器那样是一种替代品。在cURL之上使用Guzzle的主要好处是它提供的API,这会产生更简洁易读的代码。例如,看看中的代码和公认答案之间的差异,cURL代码比Guzzle实现要详细得多。谢谢。你已经完全说服我应该使用Guzzle。需要更多关于
几个简单http请求的信息吗。正在请求像
UPS
DHL
等这样的API。复杂到可以使用
Guzzle
而不是
cUrl
@hellboy这由您决定,我会选择Guzzle,但除非出于某种原因,您是一个纯粹主义者,不想使用外部库,或者如果为您的作曲家添加一行代码,那么就不值得了,棍子会卷曲