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.
Questo articolo spiega come installare Composer su sistemi Debian 10. Tratteremo anche come utilizzare Composer per creare e gestire progetti PHP.
Installazione di Composer su Debian #
Prima di installare Composer, assicurati di avere tutti i pacchetti necessari installati sul tuo sistema Debian:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer offre un programma di installazione scritto in PHP che utilizzeremo per installare Composer.
Scarica il programma di installazione con wget
:
wget -O composer-setup.php https://getcomposer.org/installer
Il comando sopra salverà il file come composer-setup.php
nella directory di lavoro corrente.
Composer è un'applicazione CLI a file singolo che può essere installata a livello globale o come parte del progetto. L'installazione globale richiede i privilegi sudo.
-
Per installare Composer a livello globale come comando a livello di sistema che sarà disponibile per tutti gli utenti, è sufficiente posizionare il file in una directory che si trova nel sistema
PATH
. Il comando seguente installa 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.10.10) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Ora puoi usare Composer eseguendo
composer
nel tuo terminale. -
Per installare il compositore in locale, scarica il file nella directory principale del tuo progetto:
sudo php composer-setup.php --install-dir=/path/to/project
Questo scaricherà un file chiamato
composer.phar
. Per utilizzare Composer, vai alla directory del progetto ed eseguiphp composer.phar
Quando è disponibile una nuova versione di Composer, puoi aggiornare l'installazione utilizzando il comando seguente:
sudo composer self-update
Guida introduttiva al compositore #
Ora che Composer è installato sul tuo sistema Debian, ti mostreremo come creare un progetto PHP.
Inizia creando una directory che sarà la radice del progetto e mantieni il composer.json
file. Questo file descrive il tuo progetto PHP, incluse le dipendenze PHP e altri metadati.
Esegui i seguenti comandi per creare 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 denominato carbon.
Esegui il comando seguente per inizializzare un nuovo composer.json
file e installa il pacchetto carbonio:
composer require nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
Come mostrato nell'output, Composer crea il composer.json
file e scarica e installa carbon e tutte le sue dipendenze.
Se elenchi la directory del tuo progetto con ls
, vedrai che contiene due file composer.json
e composer.lock
e un vendor
directory.
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 21:02 vendor
vendor
- la directory in cui sono archiviate le dipendenze del progetto.composer.lock
- un file contenente un elenco di tutti i pacchetti installati inclusa la versione dei pacchetti.composer.json
- un file che descrive il progetto PHP e tutte le dipendenze PHP.
Composer fornisce funzionalità di caricamento automatico che ti 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 utilizzando Carbon now
metodo.
Esegui lo script digitando:
php testing.php
L'output dovrebbe essere simile al seguente:
Now: 2020-08-17 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.