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 updatesudo 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.phpfile nella directory di lavoro corrente. -
Verificheremo l'integrità dei dati dello script confrontando lo script
SHA-384hash 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 verifiedSe gli hash non corrispondono, vedrai
Installer corrupt. In questo caso, dovrai scaricare nuovamente lo script di installazione di Composer e ricontrollare il valore di$HASHvariabile conecho $HASH. Una volta verificato il programma di installazione, puoi continuare con il passaggio successivo. -
Il comando seguente installerà Composer in
/usr/local/bindirectory:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composerA 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:
composerIl 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-projectcd ~/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.