为什么要使用Guzzle?
首先,Guzzle是HTTP请求的抽象层,尽管默认情况下它使用cURL,但是您可以使用所需的任何其他HTTP客户端:
Guzzle是否需要cURL?
不行。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).",
...
}
另一个原因将是重用代码,看看bogdan的注释中用cURL进行简单http请求所需的代码量。 使用Guzzle可以更加简单,简洁,可读性和可重用性。 创建封装您的Http请求的服务非常容易。
Guzzle还允许您以与使用Promise处理JavaScript的非常相似的方式执行异步请求。
最后但并非最不重要的一点是测试! 与使用cURL相比,使用API进行测试或为应用创建单元测试并使用Guzzle模拟http请求更加容易。 有关测试的更多信息,请点击此处
但是,如果您只想执行几个简单的http请求(似乎并非如此),那么您就不必关心测试,也不想对guzzle依赖cURL。