Compose è un gestore delle dipendenze per PHP (simile a npm per Node.jsor pip per Python). Composer inserirà tutti i pacchetti PHP richiesti da cui dipende il tuo progetto e li gestirà per te.
Questo tutorial fornisce i passaggi necessari per installare Composer su sistemi Debian 9. Tratteremo anche come utilizzare Composer per creare e gestire progetti PHP.
Prerequisiti #
Prima di continuare con questo tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo e di avere PHP installato sul tuo sistema Debian 9.
Installazione del compositore #
Segui i passaggi seguenti per installare Composer su sistemi Debian:
-
Per prima cosa aggiorna l'indice dei pacchetti e installa i pacchetti necessari con i seguenti comandi:
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
Una volta installate le dipendenze, usa il cli toll php per scaricare lo script di installazione di Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Il comando sopra scaricherà il
composer-setup.php
file nella directory di lavoro corrente. -
Verificheremo l'integrità dei dati dello script confrontando lo script
SHA-384
hash con l'ultimo hash del programma di installazione trovato nella pagina Chiavi pubbliche/firme di Composer.Esegui il seguente comando wget per scaricare la firma prevista dell'ultimo programma di installazione di Composer dalla pagina Github di Composer e salvarla 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, copia e incolla il seguente codice nella tua console:
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 nuovamente lo script di installazione di Composer e ricontrollare il valore di$HASH
variabile conecho $HASH
. Una volta verificato il programma di installazione, puoi continuare con il passaggio successivo. -
Il comando seguente installerà Composer in
/usr/local/bin
directory: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
A questo punto hai Composer installato sul tuo sistema Debian. Viene installato come comando a livello di sistema e sarà disponibile per tutti gli utenti.
-
Per verificare l'installazione è sufficiente digitare:
composer
Il comando precedente stamperà la versione, i comandi e gli argomenti del compositore.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
php composer-setup.php
che creerà un file chiamato composer.phar
nella directory di lavoro corrente. Puoi usare il compositore eseguendo ./composer.phar <command>.
Guida introduttiva al compositore #
Ora che hai installato Composer sul tuo sistema Debian, ti mostreremo come creare un progetto PHP con Composer.
Inizia creando una directory che sarà la radice del progetto e mantieni il composer.json
file. Questo file descrive il tuo progetto PHP comprese le dipendenze PHP e altri metadati.
Crea la directory del progetto e passa ad essa con:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Successivamente, inizializzeremo un nuovo composer.json
file utilizzando il compositore composer require <package name>
comando e specificare il pacchetto che vogliamo scaricare. In questo esempio creeremo un'applicazione di esempio che stamperà l'ora corrente utilizzando un pacchetto chiamato carbon.
Esegui il comando seguente per inizializzare un nuovo composer.json
file e installa il pacchetto carbonio:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.0): 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
Il compositore creerà un composer.json
file e scarica e installa carbon e tutte le sue dipendenze.
Se elenchi la directory del tuo progetto con ls
comando, vedrai che contiene due file composer.json
e composer.lock
e un vendor
directory.
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 vendor
vendor
- la directory in cui sono archiviate le dipendenze del progetto.composer.lock
- file contenente un elenco di tutti i pacchetti installati inclusa la versione dei pacchetti.composer.json
- file che descrive il progetto PHP e tutte le dipendenze PHP.
Composer fornisce funzionalità di caricamento automatico che ci consentono di utilizzare classi PHP senza la necessità di require
o include
i file.
Crea un file chiamato testing.php
e incolla 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 il tag php di apertura stiamo includendo il vendor/autoload.php
file che è stato generato automaticamente da Composer. Questo file caricherà automaticamente tutte le librerie richieste.
Successivamente, stiamo alias Carbon\Carbon
come Carbon
e nell'ultima riga stiamo stampando l'ora corrente usando il Carbon now
metodo.
Esegui lo script digitando:
php testing.php
L'output dovrebbe essere simile al seguente:
Now: 2018-10-16 21:08:45
Successivamente, se hai bisogno di aggiornare i pacchetti del progetto, inserisci:
composer update
Il comando precedente 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
, Il compositore aggiornerà il pacchetto.