guzzlehttp exceptions docs cookie baseuri async php laravel curl guzzle

exceptions - PHP: ¿por qué usar Guzzle en lugar de cURL?



guzzle post (2)

¿Por qué usar Guzzle?

En primer lugar, Guzzle es una capa de abstracción para la solicitud http, aunque usa cURL de forma predeterminada, puede usar cualquier otro cliente http que desee:

¿Guzzle requiere cURL?

No. Guzzle puede usar cualquier controlador HTTP para enviar solicitudes. Esto significa que Guzzle se puede usar con cURL, el envoltorio de flujo de PHP, los sockets y las bibliotecas sin bloqueo como React. Solo necesita configurar un controlador HTTP para usar un método diferente de envío de solicitudes

Nota: Históricamente, Guzzle solo ha utilizado cURL para enviar solicitudes HTTP. cURL es un cliente HTTP increíble (posiblemente el mejor), y Guzzle continuará usándolo por defecto cuando esté disponible. Es raro, pero algunos desarrolladores no tienen cURL instalado en sus sistemas o se encuentran con problemas específicos de la versión. Al permitir controladores HTTP intercambiables, Guzzle ahora es mucho más personalizable y capaz de adaptarse para satisfacer las necesidades de más desarrolladores.

Dado que está utilizando Laravel, si por casualidad utiliza alguna API de correo electrónico, entonces ya tiene instalado Guzzle. En tu Laravel''s composer.json puedes ver una sugerencia:

"suggest": { ... "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).", ... }

Otra razón será la reutilización del código, eche un vistazo al comentario hecho por Bogdan la cantidad de código necesaria para hacer una simple solicitud http con cURL. Con Guzzle es mucho más simple, limpio, legible y reutilizable. Es bastante fácil crear un servicio que encapsule sus solicitudes Http.

Guzzle también le permite hacer solicitudes asíncronas , de una manera muy similar a como lo hace con JavaScript usando promesas.

Por último, pero no menos importante, ¡pruebas! Es mucho más fácil hacer pruebas a su API o crear pruebas unitarias para su aplicación y burlarse de las solicitudes http con Guzzle que usar cURL. Más información sobre las pruebas here

PERO si solo desea hacer un par de solicitudes HTTP simples (lo que no parece ser el caso), no le interesan las pruebas y no desea que dependa de Guzzle para ir a cURL.

En mi aplicación, originalmente comencé a usar cURL para recuperar datos de varias API. Hoy, intenté usar Guzzle para completar la misma tarea. Hasta ahora, tanto cURL como Guzzle parecen funcionar igual de bien.

A juzgar por Github , a mucha gente parece gustarle Guzzle, pero realmente no aprecio por qué.

Mi pregunta:

Para mi situación (recuperación de datos de varias API), ¿es preferible usar Guzzle? ¿Finalmente me arrepentiré si uso cURL en lugar de Guzzle (o viceversa)?

Estoy usando PHP / Laravel.


Guzzle es una capa de abstracción para el transporte HTTP que utiliza cURL cuando está disponible.

Además de lo anterior, si bien puede hacer todo usted mismo con cURL, Guzzle simplifica enormemente las cosas, especialmente cuando se trata de depuración.