Composer Php

Ci occupiamo adesso in questa guida di Composer e Packagist in ambito PHP. Ossia di strumenti di lavoro e applicazioni.

Ma prima di iniziare è il caso di porsi una domanda ossia.

Composer e Packagist cos’è di cosa tratta?

In primo luogo Composer è il nuovo gestore per le dipendenze per PHP. Mentre Packagist è il nuovo repository da dove reperire le librerie dello stesso linguaggio.
Due precisazioni il pacchetto non è esattamente nuovo in quanto la sua introduzione risale al 2011. Data in cui è stato iniziato a svilupparlo da GitHub.
Ho citato il nome repository . Probabilmente quelli che vengono da Linux sanno benissimo di cosa si tratta. Per tutti gli altri si tratta di un deposito di file e librerie da dove è possibile fare il download.

Questo diciamo sanno chi è da poco che viene da Linux , chi invece ha una lunga carriera con questo SO sa benissimo di cosa sto parlando.
Ossia prima con tutte le varie versioni c’erano una miriade di possibili repository. Gli stessi sviluppatori spesso si trovavano in contrasto. C’erano distribuzioni addirittura sviluppate in maniera antagonista ad altre. Spesso vi sarà capitato che alla fine passando da una versione scaricata dal repository x a quella scaricata dal repository y non era nemmeno possibile fare l’aggiornamento.

Qui è nato quindi Composer. Ossia anche in PHP stava accandendo quanto descritto in linux. Ossia c’erano le distribuzioni ufficiali e dopo tutta una miriade di librerie, non sempre aggiornate e talune volte anche in contrasto fra di loro.

Composer è nato per risolvere tutti questi problemi. Con questa applicazione potrete installare automaticamente tutte le dipendenze delle librerie.

Installazione di Composer.

Composer Php

Quindi come avrete compreso per potere installare Composer occorre che nel vostro SO ( Sistema Operativo) sia già presente il PHP , versione minima richiesta 5.3.2.

In ambiente linux per verificare la presenza basterà da terminal inserire

php-v

Installate le tre versioni di PHP

  • zip
  • zlib utile per le compressioni gzip e relativo risparmio banda
  • openssl per il protocollo https.

Installazione Composer su Linux

  • scaricate l’installer nella directory del vostro progetto.
  • eseguite il comando php installer
  • cancellatelo dopo la sua esucizione , in quanto non piu’ utile.

Vi consiglio di eseguire alla fine un confronto fra gli hash dell’installer con quelli presenti online per verificare della correttezza.
Alla fine digitate

php composer.phar -V

Se tutto è andato per il verso giusto otterrete una risposta del tipo

Composer version 1.1.3 2016-06-26 15:42:08

E per verificare l’installazione globale

composer -v

Installazione Composer su Windows

 

Composer Packagist
Ovviamente per installarlo sui SO Windows è molto semlice. In ogni modo la procedura è la seguente

  • Fate il Download
  • Lo eseguite in una directory a vostra scelta
  • cancellatelo

Al resto penserà lui.

Funzionamento Composer

Vediamo quindi di entrare un attimo più nello specifico di questo applicativo PHP.
Composer legge tutte le dipendenze di un nostro progetto dal file composer.json.

In questo file in formato di array json sono compresi tutti i file che dobbiamo scaricare. un possibile esempio potrebbe essere

{
 "require":{
 "php":">=5.3.3",
 "symfony/symfony":"2.1.*",
 "doctrine/orm":">=2.2.3,<2.4-dev",
 "doctrine/doctrine-bundle":"1.0.*",
 "twig/extensions":"1.0.*@dev",
 "kriswallsmith/assetic":"1.1.*@dev",
 "mopa/bootstrap-bundle":"dev-master",
 "mopa/composer-bridge":"dev-master",
 "twitter/bootstrap":"master@dev",
 "knplabs/knp-paginator-bundle":"2.3"
 }
}

Quando abbiamo lanciato il comando

composer install

L’applicativo scaricherà tutti i pacchetti richiesti nella versioni corretta del file json. Crerà quindi delle stringhe di autoload e metterà tutto nella cartella vendor.

Ovviamente il tutto download verrà fatto dal repository del Packagist che è reperibile a questo indirizzo.

Ovviamente ogni volta che verrà lanciato , andrà a controllare nel repository se è presente una versione più aggiornata e in questo caso farà il download.