Introduzione

Composer è un gestore delle dipendenze per PHP.

Composer installerà tutti i pacchetti PHP richiesti da cui dipende il tuo progetto e li gestirà per te. È utilizzato in tutti i moderni framework e piattaforme PHP come Laravel, Symfony, Drupal e Magento 2.

In questa esercitazione vengono illustrati i passaggi per l'installazione di Composer su CentOS 8.

Assicurarsi di aver soddisfatto i seguenti requisiti prima di continuare:

Se non sai come connetterti al server tramite SSH leggi la seguente guida: Come connettersi ad un server VPS in remoto con SSH da terminale Linux

Installare Composer su CentOS

Procedere come segue per installare Composer su CentOS 8.

Installa il pacchetto PHP CLI (riga di comando) e tutte le altre dipendenze con:

sudo dnf install php-cli php-json php-zip wget nano unzip

Una volta installata l'interfaccia della riga di comando di PHP, scarica lo script di installazione di Composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Il comando sopra scarica un file chiamato composer-setup.php nella directory di lavoro corrente.

Verifica l'integrità dei dati confrontando l'hash del file SHA-384 con l'hash trovato nella pagina Composer Public Keys / Signatures.

Il seguente comando wget scarica la firma dell'ultimo file di installazione di Composer dalla pagina Github di Composer e la memorizza in una variabile denominata HASH:

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

Per verificare che lo script di installazione non sia danneggiato, eseguire il comando seguente:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Se gli hash corrispondono, verrà visualizzato il seguente messaggio:

Installer verified

Altrimenti, se gli hash non corrispondono, vedrai Installer corrupt. Una volta verificata l'integrità, continuare con il passaggio successivo.

Eseguire il comando seguente per installare Composer nella directory /usr/local/bin:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Il comando sopra si installa composercome comando di sistema e disponibile per tutti gli utenti. L'output sarà simile a questo

All settings correct for using Composer
Downloading...

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

Il comando sopra installa composer come comando di sistema (system-wide) e disponibile per tutti gli utenti.

Verifica l'installazione stampando la versione del compositore:

composer -V
Composer version 1.10.1 2020-03-13 20:34:27

A questo punto, hai installato Composer con successo sul tuo sistema CentOS e puoi iniziare a usarlo.

Installare di Composer in modo rapido

Procedere come segue per installare rapidamente Composer sul sistema CentOS 8:

Installa PHP CLI e Zip:

sudo dnf install php-cli php-json php-zip curl unzip

Scarica Composer con curl:

curl -sS https://getcomposer.org/installer |php

Sposta il file Composer nella directory /usr/local/bin:

sudo mv composer.phar /usr/local/bin/composer

Introduzione a Composer

Ora che Composer è installato sul tuo sistema CentOS, ti mostreremo come utilizzare Composer in un progetto PHP.

Inizia creando la directory root del progetto con il comando mkdir e naviga verso di essa 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
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)         
  - Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)         
  - Installing symfony/translation (v5.0.6): Downloading (100%)         
  - Installing nesbot/carbon (2.32.1): Downloading (100%)         
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Come puoi vedere dall'output sopra, Composer crea un file chiamato composer.json e scarica carbon e tutte le sue dipendenze.

Se si elencano le directory del progetto con il comando ls, si vedrà che essa contiene due file composer.json e composer.lock, e una directory vendor.

ls -l
-rw-r--r--. 1 noviello noviello    60 Mar 30 23:40 composer.json
-rw-r--r--. 1 noviello noviello 11135 Mar 30 23:40 composer.lock
drwxr-xr-x. 6 noviello noviello  4096 Mar 30 23:40 vendor
  • vendor è la directory in cui sono archiviate le dipendenze del progetto.
  • Il file composer.lock contiene un elenco di tutti i pacchetti installati, comprese le loro versioni.
  • composer.json è un file che descrive il tuo progetto PHP, comprese le dipendenze PHP e altri metadati.

È possibile cercare nel repository Composer Packagist i pacchetti PHP.

Composer dispone di funzionalità di caricamento automatico, che consente di utilizzare le classi PHP senza la necessità delle istruzioni require o include.

Creare un file denominato testing.php:

sudo nano testing.php

Aggiungere il seguente codice:

<?php

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

use Carbon\Carbon;

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

Analizziamo il codice riga per riga.

Nella prima riga dopo l'apertura del tag php includiamo il file vendor/autoload.php che carica automaticamente tutte le librerie.

Successivamente, stiamo creando un alias di Carbon\Carbon come Carbon. 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-03-30 21:58:12

In seguito, se desideri aggiornare i tuoi pacchetti PHP, puoi semplicemente eseguire:

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.

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Conclusione

Hai imparato come installare Composer sul tuo server CentOS 8. Ti abbiamo anche mostrato come usare Composer per creare un progetto PHP di base.

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