¿Por qué usar Guzzle en lugar de cURL en PHP?

¿ Qué es cURL ?  
cURL es un módulo en PHP con el que podemos usar libcurl. libcurl es una biblioteca que se usa en PHP para crear conexiones y comunicarse con varios tipos de servidores diferentes que pueden tener diferentes tipos de protocolos. cURl nos proporciona varias funciones preconstruidas como: curl_init(), curl_setopt(), curl_exec(), curl_close().
Limitaciones de cURL: 
 

  • cURL no admite ninguna lógica de descarga recursiva.
  • cURL requiere opciones adicionales para descargar.
  • No nos proporciona requests asíncronas y síncronas.

Ejemplo: Estas son las requests realizadas mediante cURL.
 

PHP

<?php>
 
// Get cURL resource
$curl = curl_init();
// Set some options
curl_setopt($ch, CURLOPT_POST,
    "https://jsonplaceholder.typicode.com/users");
 
curl_setopt($ch, CURLOPT_POST, false) ;
 
curl_setopt($ch, CURLOPT_RETURNTANSFER, false) ;
$result = curl_exec($ch);
curl_close($ch);
 
?>

Producción: 
 

¿Qué es Guzzle?  
Guzzle es un Microframework (capa de abstracción) que es un cliente PHP HTTP debido a que la solicitud HTTP se envía fácilmente y es trivial integrarse con los servicios web. Guzzle se puede usar con cualquier controlador HTTP como cURL, socket, envoltura de flujo de PHP. Guzzle por defecto usa cURL como manejador Http. 
¿Por qué usar Guzzle en lugar de cURL en PHP? 
 

  • Proporciona una interfaz de usuario sencilla.
  • Guzzle puede usar varios tipos de clientes HTTP.
  • Nos permite con la facilidad de peticiones asíncronas y síncronas.
  • Guzzle tiene soporte integrado para pruebas unitarias que facilita escribir pruebas unitarias para la aplicación y simular las requests http.

Ejemplo: Estas son las requests realizadas mediante Guzzle.
 

PHP

<?php
 
use GuzzleHTTP\Client;
require '>>/vendor/autoload.php';
 
$client = new Client([
    'base_uri'=>'http://httpbin.org',
    'timeout' => 2.0
]);
 
$response = $client->request('GET', 'ip');
 
echo $response->getStatusCOde(), "<br>";
$body = $response->getBody();
echo $body->getContents(), "<br>";
 
echo "<pre>";
print_r(get_class_methods($body));
echo "</pre>";
echo "<pre>";
print_r(get_class_methods($response));
echo "</pre>";
?>

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por rajatrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *