
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. È utilizzato in tutti i moderni framework e piattaforme PHP come Laravel, Symfony, Drupal e Magento 2.
In questo tutorial, esamineremo i passaggi per l'installazione e l'utilizzo di Composer su una macchina CentOS 7.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Acceduto come utente con privilegi sudo
- Avere PHP 7 installato sul tuo sistema CentOS 7.
Installazione di Composer su CentOS #
I passaggi seguenti descrivono come installare Composer su un sistema CentOS 7.
-
Prima installa il pacchetto PHP CLI (command line interface) e tutte le altre dipendenze con:
sudo yum install php-cli php-zip wget unzip
-
Una volta installata la CLI di PHP, scarica lo script del programma di installazione di Composer con:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Il comando sopra scaricherà il
composer-setup.php
file nella directory di lavoro corrente. -
Per verificare l'integrità dei dati dello script, confrontare lo script
SHA-384
hash con l'ultimo hash del programma di installazione trovato nella pagina Chiavi pubbliche/firme di Composer.Il seguente comando wget scaricherà la firma prevista dell'ultimo programma di installazione di Composer dalla pagina Github di Composer e la memorizzerà 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à mostrato il seguente messaggio:
Installer verified
Se gli hash non corrispondono, vedrai
Installer corrupt
. In questo caso, è necessario 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. -
Esegui il comando seguente per installare 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
Il
composer
viene installato come comando a livello di sistema e sarà disponibile per tutti gli utenti. -
L'ultimo passaggio è verificare l'installazione:
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]
A questo punto, hai installato correttamente Composer sul tuo sistema CentOS.
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 Composer è installato sul tuo sistema CentOS, ti mostreremo come utilizzare Composer in un progetto PHP.
Inizia creando una directory che sarà la directory principale del progetto e mantieni il composer.json
file.
composer.json
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
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 progetto Composer e installare il pacchetto carbon:
composer require nesbot/carbon
Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
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
Come puoi vedere dall'output sopra, Composer creerà il composer.json
file e scaricherà e installerà carbon e tutte le sue dipendenze.
Se elenchi la directory del tuo progetto, vedrai che contiene due file composer.json
e composer.lock
e un vendor
directory.
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- Il
vendor
directory è la directory in cui sono archiviate le dipendenze del progetto. - Il
composer.lock
contiene un elenco di tutti i pacchetti installati, comprese le relative versioni. - Il
composer.json
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 utilizzare require
o include
i file.
Crea un file chiamato testing.php
e aggiungi 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 che caricherà automaticamente tutte le librerie.
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 a questo:
Now: 2018-09-26 20:08:18
In seguito, se desideri aggiornare i tuoi pacchetti PHP, puoi semplicemente eseguire:
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.