Introduzione

Composer è un gestore delle dipendenze per PHP (simile a npm per Node.js o 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.

Se desideri installare PHP Composer su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare 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 useremo 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 globalmente o come parte del progetto. L'installazione globale richiede privilegi sudo.

Per installare Composer a livello globale come un 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 seguente comando installa Composer nella directory /usr/local/bin:

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 il comando composer nel tuo terminale.

Per installare Composer localmente, scarica il file nella directory principale del tuo progetto:

sudo php composer-setup.php --install-dir=/path/to/project

Questo scaricherà un file denominato composer.phar. Per utilizzare Composer, vai alla directory del progetto ed esegui php composer.phar.

Quando è disponibile una nuova versione di Composer, è possibile aggiornare l'installazione utilizzando il seguente comando:

sudo composer self-update  

Introduzione a Composer

Ora che hai Composer installato sul tuo sistema Debian, ti mostreremo come creare un progetto PHP.

Inizia creando una directory che sarà la radice del progetto e conterrà il file composer.json. Questo file descrive il tuo progetto PHP, comprese le dipendenze PHP e altri metadati.

Eseguire i seguenti comandi per creare la directory del progetto e passare ad essa con:

mkdir ~/my-first-composer-project
cd ~/my-first-composer-project

Successivamente, inizializzeremo un nuovo file composer.json utilizzando il comando composer require <package name> e specificheremo 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 seguente comando per inizializzare un nuovo file composer.json e installare il pacchetto carbon:

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 file composer.json e scarica e installa Carbon e tutte le sue dipendenze.

Se elenchi la directory del tuo progetto con il comando ls, vedrai che contiene due file composer.json e composer.lock, e una directory vendor.

ls -l
-rw-r--r-- 1 root root    60 Sep  2 21:07 composer.json
-rw-r--r-- 1 root root 14996 Sep  2 21:07 composer.lock
drwxr-xr-x 6 root root  4096 Sep  2 21:07 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.

Puoi cercare pacchetti PHP nel repository di Composer Packagist.

Composer fornisce funzionalità di caricamento automatico che consentono di utilizzare le classi PHP senza la necessità di require o include i file.

Crea un file denominato testing.php e incolla il codice seguente:

sudo nano testing.php
<?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 includiamo il file vendor/autoload.php che è stato generato automaticamente da Composer. Questo file caricherà automaticamente tutte le librerie richieste.

Successivamente, creiamo l'alias di Carbon\Carbon come Carbon e nell'ultima riga stampiamo l'ora corrente utilizzando il metodo Carbon now .

Esegui lo script digitando:

php testing.php

L'output dovrebbe essere simile al seguente:

Now: 2020-09-02 21:08:26

Successivamente, se è necessario aggiornare i pacchetti del progetto, immettere:

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 version constraint corrisponde a quello specificato in composer.json, Composer aggiornerà il pacchetto.

Conclusione

Ti abbiamo mostrato come installare Composer su Debian 10 e come usarlo per creare un progetto PHP di base. Per ulteriori informazioni su Composer, visitare la pagina della documentazione ufficiale .