Finalmente ho avuto modo di provare Composer, in particolare per installare plugins e le loro dipendenze in un progetto CakePHP.
Solo una parola: co-mo-dis-si-mo.
Semplice, veloce, e funziona: gestire le dipendenze ed aggiungere plugins e librerie diventa indolore ed automatico.
Per chi ancora non lo usasse, come punto di partenza consiglio questo semplice articolo di Miles Johnson.
Non è difficile usarlo anche su macchine windows.
Sul sito ufficiale c’è pure un installer che rende ancora più semplice il tutto.
- Installare
- Impostare variabile ambiente PATH per aggiungere il percorso in cui è stato installato Composer;
- testare il funzionamento. Si può usare prompt di comandi (o cygwin se si preferisce una shell unix-like) o configurare integrazione nell’IDE (semplice in netbeans o phpstorm, che hanno il supporto integrato a Composer)
- Creare (o.. comporre seguendo le indicazioni dei singoli plugin che ci interessano) un semplice file composer.json (vedere il suddetto esempio, la documentazione di composer o le indicazioni del plugin)
- usare il comando composer update.. et voilà, in breve plugin e componenti di terze parti da cui dipendono sono scaricati e messi nel posto giusto automaticamente.
- Si può anche aggiungere l’autoloader..
Serve solo qualche attenzione nella configurazione del sistema (hint hint: phar, ssl, allow_url_fopen..): sostanzialmente, oltre ai semplici prerequisiti, PHP deve essere in grado di leggere ed interagire coi file remoti. Comunque sarà composer stesso ad avvisare con warning ed errori che danno chiari indizi su cosa occorre cambiare (male che vada, 5 minuti su stackoverflow dovrebbero essere sufficienti).
Attenzione nel caso si abbiano più versioni di php diverse installate (ad esempio usando wampserver): è bene assicurarsi che php via linea di comando usi lo stesso php.ini del web server. Stessa cosa tramite IDE – in Netbeans ad esempio si sceglie esplicitamente la versione da usare semplicemente puntando alla cartella specifica.
Non l’ho provato, ma per CakePHP c’è anche un plugin che promette di rendere tutto ancora più sempice.
Solo un dubbio mi rimane: perché si chiama “Composer” e il logo è l’immagine di un direttore d’orchestra? 🙂