Salta ai contenuti
Manuale LogoManuale Logo

Composer

Composer è il gestore di dipendenze più usato in PHP. Una dipendenza è una libreria esterna che il progetto usa senza doverla riscrivere da zero.

Per esempio, invece di scrivere una libreria per inviare email, puoi installarne una già pronta.

Il file composer.json descrive il progetto e le librerie richieste.

Puoi crearne uno con:

Terminal window
composer init

Per iniziare puoi anche installare direttamente un pacchetto.

Terminal window
composer require monolog/monolog

Composer aggiorna composer.json e scarica il codice nella cartella vendor.

Se scarichi un progetto che contiene già composer.json, esegui:

Terminal window
composer install

Composer legge anche composer.lock, se presente, e installa le versioni previste.

Composer crea un file di autoload per caricare classi e librerie.

<?php
require __DIR__ . '/vendor/autoload.php';

Dopo questa riga puoi usare le librerie installate nel progetto.

Per aggiornare le librerie:

Terminal window
composer update

Questo comando può cambiare le versioni. Nei progetti reali va usato con attenzione e seguito da test.

  • composer require aggiunge una libreria
  • composer install installa cio che il progetto richiede
  • composer update aggiorna le versioni consentite

Composer diventa utile quando il progetto supera il singolo file e inizia a usare librerie esterne.

Quando installi dipendenze, Composer crea spesso anche composer.lock. Questo file registra le versioni esatte installate.

Il suo scopo è semplice: se un’altra persona installa il progetto, riceve le stesse versioni delle librerie. Così si evitano differenze difficili da capire.

La cartella vendor contiene il codice scaricato da Composer. Di solito non va modificata a mano.

In molti progetti vendor non viene salvata in Git. Si salva invece composer.json e composer.lock, poi ogni persona esegue:

Terminal window
composer install

Dopo l’autoload, puoi usare classi fornite dai pacchetti.

<?php
require __DIR__ . '/vendor/autoload.php';
// Qui puoi usare le librerie installate con Composer

Ogni libreria ha la propria documentazione, ma nel progetto PHP il punto di ingresso resta quasi sempre vendor/autoload.php.

Non installare una libreria per ogni piccola cosa. Prima capisci il problema, poi scegli una libreria se ti evita lavoro complesso o delicato.