Corsi on-line

Guzzle, un client HTTP in PHP

Guzzle è un client per lo standard di trasmissione dati HTTP (HyperText Transfer Protocol) che permette di lavorare agevolmente con HTTP/1.1 consentendo nel contempo di impiegare un minor numero di risorse nell’utilizzo dei Web services; si tratta di una soluzione che mette a disposizione degli adapters per l’invio delle richieste in parallelo o in modalità seriale.

HTTP

Guzzle non richiede l’adozione della libreria cURL per il suo funzionamento ma la utilizza in modalità predefinita, gestisce lo strem di dati sia per le sessioni di download che per quelle di upload e consente l’estensione delle funzionalità di base tramite hooks e plugin per varie features, dai cookies alla cache, dalla produzione di log per la registrazione delle attività all’autenticazione tramite OAuth.

Disponibile il supporto per il connection pooling, per le verifiche SSL (Secure Sockets Layer), per la decompressione automatica del corpo delle risorse inviate a seguito delle richieste e per lo streaming multipart nell’upload dei file. Guzzle gestisce anche il timeout delle connessioni e fornisce un’interfaccia orientata agli oggetti per gli headers.

L’installazione del client potrà avvenire tramite Composer con il quale sarà possibile gestire velocemente anche le eventuali dipendenze:

curl -sS https://getcomposer.org/installer | php

L’utilizzo è altrettanto semplice, nell’esempio seguente viene mostrata una procedura per l’interazione tramite l’interfaccia di programmazione del servizio per il controllo di versione GitHub:

// istanza dell'oggetto di classe
$client = new GuzzleHttp\Client();
// connessione al servizio tramite API
$res = $client->get('https://api.github.com/user', ['auth' =>  ['user', 'pass']]);
// restituzione del codice di stato ("200")
echo $res->getStatusCode();
// intestazione ("'application/json; charset=utf8'")
echo $res->getHeader('content-type');
// contenuto dell'interscambio
echo $res->getBody();
// output formato JSON
var_export($res->json());

Guzzle richiede un ambiente basato su PHP 5.4.0 con la direttiva allow_url_fopen abilitata nel PHP.ini allo scopo di utilizzare lo stream PHP; nel caso si desideri sfruttare l’adapter di cURL sarà necessario disporre delle versione 7.16.2 (o successiva) della libreria compilata con OpenSSL e zlib.

Via Guzzle

Post correlati
I più letti del mese
Tematiche