Introduzione

Composer è un gestore delle dipendenze per PHP (simile a npm per Node.js o pip per Python).

Con Composer, puoi specificare le librerie PHP dalle quali dipende il tuo progetto, che tirerà e gestirà tutte le librerie e le dipendenze per te. Composer è utilizzato in tutti i moderni framework e piattaforme PHP come Laravel, Symfony, Drupal e Magento.

Questo tutorial spiega come installare e utilizzare Composer su Ubuntu 20.04 LTS Focal Fossa.

Se desideri installare Composer su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare PHP Composer su Ubuntu

Prima di installare Composer, assicurati di avere tutti i requisiti necessari installati sul tuo sistema:

sudo apt update
sudo apt install wget php-cli php-zip unzip

Composer offre un programma di installazione scritto in PHP che useremo per installare Composer. Utilizzare wget per scaricare il programma di installazione:

wget -O composer-setup.php https://getcomposer.org/installer

Il comando sopra salverà il file come composer-setup.php nella directory di lavoro corrente.

Composer è un'applicazione CLI a singolo file e può essere installata a livello globale o come parte del progetto. L'installazione globale richiede i privilegi di sudo.

Per installare Composer a livello globale come comando a livello di sistema che sarà disponibile per tutti gli utenti, è sufficiente posizionare il file in una directory che si trova nel sistema PATH. Eseguire il comando seguente per installare Composer nella directory /usr/local/bin:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...

Composer (version 1.10.7) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Ora puoi usare Composer eseguendo composer nel tuo terminale

Per installare il compositore localmente inserisci:

sudo php composer-setup.php --install-dir=/path/to/project

Ciò scaricherà un file denominato composer.phar nella directory principale del progetto. Per usare Composer, vai alla directory del progetto ed esegui php composer.phar

Quando è disponibile una nuova versione di Composer, è possibile aggiornare l'installazione utilizzando il comando seguente:

sudo composer self-update  

Introduzione a Composer

Ora che Composer è installato sul tuo sistema Ubuntu, vediamo come creare un progetto PHP con Composer.

Il primo passo è creare la directory root del progetto con il comando mkdir e entrarci con il comando cd:

mkdir ~/my-first-composer-project
cd ~/my-first-composer-project

In questo esempio, useremo un pacchetto PHP chiamato carbon per creare un'applicazione di esempio che stampa l'ora corrente.

Eseguire il comando seguente per inizializzare un nuovo progetto Composer e installare il pacchetto carbon:

composer require nesbot/carbon
Using version ^2.35 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
  - Installing symfony/translation-contracts (v2.1.2): Downloading (100%)         
  - Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)         
  - Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)         
  - Installing symfony/translation (v5.1.2): Downloading (100%)         
  - Installing nesbot/carbon (2.35.0): Downloading (100%)         
Writing lock file
Generating autoload files
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Come mostrato nell'output, Composer crea il file composer.json e scarica e installa carbon e tutte le sue dipendenze.

Se si elenco di directory del progetto, si vedrà che essa contiene due file composer.json e composer.lock, e una directory vendor.

ls -l
total 24
-rw-r--r-- 1 noviello noviello    60 Jun 24 16:31 composer.json
-rw-r--r-- 1 noviello noviello 14631 Jun 24 16:31 composer.lock
drwxr-xr-x 6 noviello noviello  4096 Jun 24 16:31 vendor
  • vendor è la directory in cui sono archiviate le dipendenze del progetto.
  • composer.lock è un file che mantiene le informazioni su tutti i pacchetti installati e le loro versioni, bloccando il progetto sulle versioni specifiche.
  • composer.json è il file che descrive il tuo progetto PHP, comprese le dipendenze PHP e altri metadati.

Tutti i pacchetti PHP installabili con Composer sono elencati in Packagist.

Composer ha funzionalità di caricamento automatico che ci consentono di utilizzare le classi PHP senza la necessità di utilizzare require o include.

Crea un file denominato testing.php e aggiungi il seguente codice:

<?php

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

use Carbon\Carbon;

printf("Now: %s", Carbon::now());

Analizziamo il codice riga per riga.

Il file vendor/autoload.php viene generato automaticamente da Composer e carica automaticamente tutte le librerie.

La riga successiva crea un alias Carbon e l'ultima riga stampa l'ora corrente usando il metodo Carbon now.

Esegui lo script digitando:

php testing.php

L'output dovrebbe assomigliare a questo:

Now: 2020-06-24 16:35:25

Successivamente, se è necessario aggiornare i pacchetti del progetto, immettere:

composer update

Il comando sopra verificherà la presenza di versioni più recenti dei pacchetti installati e se viene trovata una versione più recente e il vincolo di versione corrisponde a quello specificato in composer.json, Composer aggiornerà il pacchetto.

Conclusione

Ti abbiamo mostrato come installare Composer su Ubuntu 20.04 LTS Focal Fossa e come usarlo per creare un progetto PHP di base.

Per ulteriori informazioni su Composer, visitare la pagina della documentazione ufficiale.