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 curl php-cli php-mbstring git unzip

Installare Composer

Assicurarsi di esser nella home directory:
cd ~

Scaricare Composer utilizzando curl:
curl -sS https://getcomposer.org/installer -o composer-setup.php

Verificare che l'installer corrisponda all'hash SHA-384 dell'ultima versione dell'installer del Composer, disponibile in questa pagina.
Attualmente l'nstaller signature (SHA-384) è il seguente:
HASH=544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061

Eseguire il seguente script PHP per verificare che lo script del Composer non abbia problemi:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Dovresti ricevere un messaggio di output simile al seguente:

Installer verified

Per installare il Composer dare il seguente comando:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Dovresti ricevere un messaggio di output simile al seguente:

All settings correct for using Composer
Downloading...

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

Per testare l'installazione, eseguire:
composer

Dovresti ricevere un messaggio di output simile al seguente:

 ______
 / ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                   /_/
Composer version 1.6.5 2018-05-04 11:44:59

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.

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

L'installazione di Composer su Ubuntu 18.04 LTS è terminata