-
Notifications
You must be signed in to change notification settings - Fork 1
Composer gestire le dipendenze in PHP
Composer è un tool che permette di gestire le dipende di un progetto PHP e a mantenere le librerie esterne aggiornate.
Composer è un progetto open source per la gestione delle dipendenze di librerie PHP e per l’autoloading delle classi. È stato sviluppato da Nils Aderman e Jordi Boggiano nel 2012 e da allora è entrato a far parte del bagaglio di conoscenze di tutti i programmatori PHP. L’utilizzo di Composer è diventato uno standard di fatto, tanto che al giorno d’oggi è difficile incontrare un progetto in PHP che non lo utilizzi.
Il funzionamento di Composer è basato sulla presenza di un file di configurazione, denominato composer.json. Questo file viene utilizzato per impostare le dipendenze con le librerie di terze parti da utilizzare nel progetto. Le informazioni vengono inserite nel formato JSON3; di seguito è riportato un esempio:
{
"require": {
"twig/twig": "^3.0"
}
}
require
indica quale libreria esterna aggiungere al progetto e con quale versione.
Per l’installazione delle librerie di terze parti, Composer effettua il download dal repository Internet packagist.org. Su questo server sono memorizzate le librerie PHP open source che possono essere installate. Chiunque può registrare gratuitamente una libreria su packagist.org. Packagist è il repository ufficiale del progetto Composer ma è anche possibile utilizzare un’altra sorgente per l’installazione, come ad esempio un repository su github.com.
All'interno della directory del progetto, dal terminale, digitare:
composer require "twig/twig:^3.0"
Composer creerà un file composer.json
con indicati i requisiti del progetto. Composer effettuerà anche lo scaricamento e l'installazione della libreria nel progetto.
Le librerie verranno scaricate nella directory ./vendor/
e verrà anche creato un file php autoload.php
per effettuare l'autoload delle classi.
Il file autoload.php
va incluso in ogni file PHP che dovrà utilizzare le librerie installate tramite Composer:
require_once __DIR__ . '/vendor/autoload.php'; //adeguare il percorso
Per saperne di più sull'autoload: https://www.php.net/manual/en/language.oop5.autoload.php
Per saperne di più su composer: https://getcomposer.org/