Composer ti aiuta a gestire le dipendenze PHP del tuo progetto: vediamo come Se programmi in PHP e non sfrutti Composer sei "out"

<span class="entry-title-primary">Composer ti aiuta a gestire le dipendenze PHP del tuo progetto: vediamo come</span> <span class="entry-subtitle">Se programmi in PHP e non sfrutti Composer sei "out"</span>

Nell’immagine, non a caso, ho riportato la foto di un’orchestra musicale perchè, di fatto, Composer assume un po’ il ruolo del “direttore d’orchestra” del nostro codice. Chiunque sappia programmare un minimo sa bene che raramente il codice che produciamo è mono-blocco: quasi sempre intervengono almeno delle include/require, senza contare l’inclusione di vere e proprie librerie, all’occorrenza, che stabiliscono delle dipendenze nel software senza il quale, piaccia o meno, i nostri servizi non potrebbero mai funzionare. Quando le librerie da importare sono tante, le cose tendono a complicarsi e può diventare difficile, se non impossibile, gestire il tutto a mano.

Gestire manualmente le dipendenze rischia di diventare complesso quando i software iniziano a diventare più completi (e quindi più “esigenti”): per gestirli in modo automatico Composer potrebbe rivelarsi la soluzione free e open source tra le migliori in assoluto.

Capire a cosa serve Composer (senza sbattersi)

Devo dire che l’impatto con Composer e la sua pagina web non è probabilmente dei migliori, e molti tendono a scoraggiarsi e a lasciare perdere fin dall’inizio: in pratica serve a coadiuvare i vostri progetti PHP mediante un semplice file di testo in formato JSON, che conterrà le istruzioni necessarie all’installazione delle dipendenze che vi servono.

Se siete frequentatori di GitHub e ci fate caso, vi sarà certamente capitato di sentire nominare Composer come alternativa alla classica installazione: la schermata seguente fa riferimento, ad esempio, al tool di debug espanso kint, per il quale è possibile operare una banale include nel file oppure ricorrere a Composer.

Ecco un esempio tratto dalla pagina in questione:

Schermata 2016-03-16 alle 14.40.15

Un esempio certo molto elementare, ma altrettanto chiaro, delle potenzialità del Composer: in genere ad ogni riga innestata nel file JSON corrisponde una nuova libreria, così come viene identificata e inclusa automaticamente dallo stesso. Se ci fossero incompatibilità o warning sulla versione di PHP che state usando, Composer vi potrà avvisare in automatico, e questo è molto comodo in fase di sviluppo per non avere problemi in seguito al trasferimento sul server di produzione, ad esempio.

Il formato generale di un file composer.json (che va messo nella root della webapp o del sito, cioè nella sua cartella principale, quella che contiene tutte le altre ed i vari file) è il seguente:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Ad ogni riga del file corrisponderà una libreria, accompagnata dalla sua versione; per codificare le nostre scelte possiamo cercare quello che vogliamo su packagist.org e ricopiare la stringa di conseguenza.

Per esempio:

  • PHPmailer: “phpmailer/phpmailer”: “~5.2”
  • PDFMerge. “jurosh/pdf-merge”: “dev-master”

Come si installa Composer

Contrariamente ad altre soluzioni open non esiste un vero e proprio pacchetto di installazione (tranne per Windows, per cui c’è un comodo eseguibile): si può, invece, sfruttare il terminale a linea di comando di Mac, Windows o Linux, ed installarlo come indicato. Le istruzioni sono riportate sulla pagina ufficiale, la procedura non dovrebbe darvi particolari problemi per cui non perdo altro tempo a rispiegarle e passo subito all’azione: basta copiare ed incollare il set di istruzioni nel terminale.

Di seguito riporto un piccolo esempio di uso di Composer, per mostrare che non è nulla di davvero difficile e che, anzi, una volta “ingranato” velocizza notevolmente lo sviluppo.

Partiamo dalla cartella che contiene i nostri file, ad esempio mioprogetto:

/var/www/mioprogetto/

andiamo a creare in essa un semplice file di testo, che chiameremo composer.json come già accennato. Poniamo di voler installare ad esempio PHPMailer (il famoso client PHP), per cui scriveremo qualcosa del genere dentro al file:

{
    "require": {
        "phpmailer/phpmailer": "5.2.*"
    }
}

a questo punto possiamo salvare e passare, sempre da terminale e spostandoci in /var/www/mioprogetto/, alla fase di uso di Composer scrivendo:

composer install

Cosa fa questo comando è presto detto: controlla che il file .json sia corretto (attenzione alla presenza della “require” obbligatoria), e genera di conseguenza una cartella vendor nella quale saranno presenti i file delle dipendenze. A questo punto sarà sufficente includere dal file principale PHP un semplice:

require 'vendor/autoload.php';

e saranno incluse in automatico tutte le dipendenze richieste dal file JSON.

Le volte successive, per includere le dipendenze nuove e salvare le vecchie andremo a sfruttare l’update:

composer update

Per rilevare eventuali conflitti si usa:

composer diagnose

Composer, di fondo, è questo: ovviamente non ho proposto esempi troppo complessi ma le possibilità sono certamente tantissime, e cambiano a seconda dei casi considerati.

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Composer ti aiuta a gestire le dipendenze PHP del tuo progetto: vediamo come

Nell’immagine, non a caso, ho riportato la foto di un’orchestra …
0 0 utenti hanno votato questa pagina

Ti potrebbero interessare (Guide per webmaster):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.

Composer ti aiuta a gestire le dipendenze PHP del tuo progetto: vediamo come

Nell’immagine, non a caso, ho riportato la foto di un’orchestra …
0 0 utenti hanno votato questa pagina