Introduzione

Composer è un gestore di pacchetti per il linguaggio di programmazione PHP, creato principalmente per facilitare l'installazione e gli aggiornamenti delle dipendenze del progetto.

In questo tutorial vedremo come installare ed utilizzare Composer su Ubuntu 18.04 LTS.

Prerequisiti

Prima di iniziare con questa guida, dovresti avere un utente non root con i privilegi sudo impostati sul tuo server. Segui questa guida: Configurazione Iniziale su Ubuntu 18.04 LTS.

Installare i pacchetti necessari

Assicuriamoci di aggiornare l'indice dei pacchetti. Aprire il terminale e dare questo comando:

sudo apt update

Installare le dipendenze necessarie per scaricare ed utilizzare Composer con PHP:

sudo apt install wget php-zip unzip php-cli php-mbstring git unzip

Installare Composer

Se hai fretta e non vuoi verificare l'integrità del file, scorri verso il basso fino al paragrafo Installare Composer in modo rapido.

Per installare Composer sul tuo sistema Ubuntu, procedi come segue.

Ora che php-cli è installato sul nostro computer, possiamo scaricare il programma di installazione del compositore con:

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

Il comando sopra scaricherà il composer-setup.phpfile nella directory di lavoro corrente.

Successivamente, dobbiamo verificare l'integrità dei dati dello script confrontando l'hash dello script SHA-384 con l'hash dell'installer più recente trovato nella pagina Composer Public Keys / Signatures.

Useremo il seguente comando wget per scaricare la firma prevista dell'ultimo programma di installazione di Composer dalla pagina Github del Composer e memorizzarla in una variabile denominata HASH:

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

Ora esegui il comando seguente per verificare che lo script di installazione non sia danneggiato:

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, vedrai il seguente output:

Installer verified

Se gli hash non corrispondono, vedrai Installer corrupt. In questo caso dovrai scaricare di nuovo lo script di installazione di Composer e ricontrollare il valore della $HASHvariabile con echo $HASH. Una volta verificato il programma di installazione, è possibile continuare con il passaggio successivo.

Il seguente comando installa 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.8.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Il composer è installato come un comando a livello di sistema e sarà disponibile per tutti gli utenti.

L'ultimo passaggio è verificare l'installazione:

composer

Dovresti ricevere un messaggio di output simile al seguente:

______
/ ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.5 2019-04-09 17:46:47

Usage:
    command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 fr more verbose output and 3 for debug
...

Ciò verifica che Composer sia installato correttamente sul tuo sistema.

Installare Composer in modo rapido

Utilizzare i seguenti comandi per installare rapidamente Composer sul proprio sistema Ubuntu:

Installa PHP CLI e Zip:

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

Scarica Composer con arricciatura:

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

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

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

Utilizzare Composer

I progetti PHP spesso dipendono da librerie esterne. Composer facilita la ricerca e l'installazione delle dipendenze per le librerie esterne.

Per utilizzare Composer, avrai bisogno di un file composer.json. Questo file indica a Composer quali dipendenze  scaricare per il progetto e quali versioni di ciascun pacchetto possono essere installate.

Composer genera automaticamente il file composer.json quando aggiungi una dipendenza al progetto usando il comando require.

Il processo di utilizzo di Composer per installare un pacchetto come dipendenza in un progetto prevede i passaggi seguenti:

Proviamo con un'applicazione demo.

L'obiettivo di questa applicazione è trasformare una determinata frase in una stringa compatibile con l'URL: una slug.

Iniziamo creando una directory per il nostro progetto. Lo chiameremo slugify:

cd ~
mkdir demoslug
cd demoslug

Cercare il pacchetto cocur/slugify su Packagist.org

Eseguire Composer per includerlo come dipendenza e generare anche il file composer.json per il progetto:

composer require cocur/slugify

Dovresti ricevere un messaggio di output simile al seguente:


Using version ^3.1 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing cocur/slugify (v3.1): Downloading (100%)
Writing lock file
Generating autoload files

La directory del tuo progetto, conterrà due nuovi file: composer.json e composer.lock e una nuova cartella vendor:

ls -l

Il file compositore.lock viene utilizzato per archiviare informazioni sulle versioni di ciascun pacchetto installate.

La cartella vendor è dove si trovano le dipendenze del progetto.

Autoload Script

Composer fornisce uno script di caricamento automatico che è possibile includere nel progetto per ottenere l'autoloading.

Includere il file vendor/autoload.php nel file PHP prima di ogni istanza di classe. Questo file viene generato automaticamente da Composer quando aggiungi la tua prima dipendenza.

Creare e modificare il file test.php:

nano test.php

Aggiungere le seguenti righe di codice:


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

use Cocur\Slugify\Slugify;

$slugify = new Slugify();

echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

Salvare e chiudere il file

Eseguire lo script PHP:

php test.php

Dovresti ricevere un messaggio di ouput simile al seguente:


hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

Aggiornamento delle dipendenze

Per aggiornare le dipendenze del progetto eseguire il seguente comando:

composer update

Puoi anche aggiornare una o più librerie specifiche:

composer update vendor/package vendor2/package2

Conclusione

In questo tutorial abbiamo visto come installare e usare il Composer su Ubuntu 18.04 LTS.