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 root@IP_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 nome_utente@IP_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 nome_utente@IP_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.