Guzzle PHP HTTP Client

Guzzle è un client HTTP per servizi REST che ho scoperto recentemente. Questo vuole essere solamente un breve post introduttivo, sperando di poter trovare presto il tempo di scriverne in maniera più approfondita.

Guzzle viene descritto così dai sui sviluppatori:

Guzzle is a PHP HTTP client and framework for building RESTful web service clients

Il termine “framework” non è improprio e rende bene il concetto che guzzle è molto di più di un semplice client http. Tramite questo framework infatti è possibile implementare robusti client per qualsiasi servizio REST, in maniera piuttosto veloce.

Tra le caratteristiche più interessanti vale la pena citare:

  • Tutte le componenti sono unit-testate e il framework mette a disposizione degli strumenti che facilitano il testing dei propri client (è anche presente un webserver interno, basato su node.js che può essere usato per testare le chiamate http)
  • Gestione di richieste parallele
  • Supporto alle specifiche di caching HTTP
  • Estendibile tramite plugin
  • Possibilità di definire i client più semplici tramite definizione xml

Oltre al framework sono disponibili alcuni client per servizi pubblici, tra cui AWS.

La documentazione mi pare sufficientemente completa per iniziare a lavorare con la libreria e, per quanto ho potuto vedere, priva di errori. Dalle prime implementazioni mi pare che non ci siano grossi bachi o problemi, tutto sembra funzionare come deve. La nota dolente di questo progetto è che non sembra avere una community troppo vivace, anche se gli ultimi commit sul repo github sono piuttosto recenti (il che fa pensare che il progetto non sia morto).

Da quel che ho potuto vedere fino ad ora mi pare un progetto sicuramente interessante da tenere d’occhio, conoscete qualcosa di meglio ?