Compose è un gestore delle dipendenze per PHP (simile a npm per Node.jsor pip per Python).
Con Composer, puoi specificare le librerie PHP da cui dipende il tuo progetto, che estrarrà e gestirà tutte le librerie e le dipendenze per te. Composer è utilizzato in tutti i moderni framework e piattaforme PHP come Laravel, Symfony, Drupal e Magento.
Questo tutorial spiega come installare e utilizzare Composer su Ubuntu 20.04.
Installazione di PHP Composer su Ubuntu #
Prima di installare Composer, assicurati di avere tutti i requisiti necessari installati sul tuo sistema:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer offre un programma di installazione scritto in PHP che useremo per installare Composer. Usa wget
per scaricare il programma di installazione:
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 e 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
.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.10.7) 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, inserisci:
sudo php composer-setup.php --install-dir=/path/to/project
Questo scaricherà un file chiamato
composer.phar
nella directory principale del tuo progetto. Per utilizzare Composer, vai alla directory del progetto ed eseguiphp composer.phar
Quando è disponibile una nuova versione di Composer, puoi aggiornare la tua installazione utilizzando il comando seguente:
sudo composer self-update
Guida introduttiva al compositore #
Ora che Composer è installato sul tuo sistema Ubuntu, vediamo come creare un progetto PHP con Composer.
Il primo passaggio consiste nel creare la directory principale del progetto e accedervi:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
In questo esempio, utilizzeremo un pacchetto PHP chiamato carbon per creare un'applicazione di esempio che stampi l'ora corrente.
Esegui il comando seguente per inizializzare un nuovo progetto Composer e installare il pacchetto carbon:
composer require nesbot/carbon
Using version ^2.35 for 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.2): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)
- Installing symfony/translation (v5.1.2): Downloading (100%)
- Installing nesbot/carbon (2.35.0): Downloading (100%)
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, vedrai che contiene due file composer.json
e composer.lock
e un vendor
directory.
ls -l
-rw-rw-r--. 1 linuxize linuxize 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 linuxize linuxize 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 linuxize linuxize 82 Mar 27 18:06 vendor
vendor
è la directory in cui sono archiviate le dipendenze del progetto.composer.lock
è un file che conserva le informazioni su tutti i pacchetti installati e le loro versioni, bloccando il progetto su versioni specifiche.composer.json
è il file che descrive il tuo progetto PHP, incluse le dipendenze PHP e altri metadati.
Composer ha capacità 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 aggiungi il seguente codice:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Analizziamo il codice riga per riga.
Il vendor/autoload.php
il file viene generato automaticamente da Composer e carica automaticamente tutte le librerie.
La riga successiva crea l'alias Carbon
e l'ultima riga stampa l'ora corrente usando Carbon now
metodo.
Esegui lo script digitando:
php testing.php
L'output dovrebbe essere simile a questo:
Now: 2020-06-17 20:41:04
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.