Cos’è e a cosa serve Composer

I progetti che sviluppiamo dipendono sempre più da componenti esterni: pensiamo a gli script provenienti dal mondo open source oppure alle librerie che servizi come Amazon AWS o Facebook Developer mettono a disposizione gratuitamente per integrare i nostri progetti con i servizi che offrono. Aggiungere queste librerie ai progetti, tenerle sempre aggiornate e poterle gestire può essere uno spreco di tempo, meglio concentrarsi sul progetto stesso. Composer è un tool che ci aiuta proprio in questo: è un dependecy manager scritto in PHP che ci permette di installare e aggiornare le librerie esterne in modo molto semplice.

Per ciascun progetto, Composer crea una cartella vendor  dentro la cartella principale del progetto, non c’è bisogno di fare alcuna installazione nel sistema. Una volta definite le librerie che ci servono, Composer le scarica automaticamente e le inserisce, appunto, nella cartella vendor . A noi non resta che includere nei nostri sorgenti un file php auto-generato di autoload, ne parleremo in seguito). Possiamo naturalmente dichiarare quale versione di ciascuna libreria desideriamo o semplicemente ottenere l’ultima disponibile. Naturalmente possiamo dire a  Composer di aggiornarle in qualsiasi momento o ri-scaricarle in futuro.

Requisiti di sistema

Non importa quale sistema abbiate, funziona egregiamente su Windows, Linux o Mac perché Composer stesso è scritto in PHP. È sufficiente avere una versione PHP 5.3.2 o superiore e non ci sono configurazioni particolari da gestire. Tuttavia, per permettere a Composer di scaricare librerie da Packagist o altre fonti è necessaria la presenza di git o svn.

Vediamo come installare Composer su Linux, Mac o Windows nel prossimo capitolo.

Packagist

Il repository principale dal quale Composer scarica i suoi pacchetto è Packagist. Un repository è principalmente un grande magazzino riempito di pacchetti: attraverso require la libreria viene cercata automaticamente tra quelle presenti qui. Per avere un’idea di quali librerie avete potenzialmente a disposizione, fate un giro sul sito di Packagist.