Composer è un gestore di pacchetti a livello di applicazione per il linguaggio di programmazione PHP simile a NPM per Node.Js o PIP per Python. Composer fornisce un formato standard per gestire tutte le dipendenze del software PHP e le librerie richieste scaricando tutti i pacchetti PHP richiesti del tuo progetto e gestendoli per te. È utilizzato dalla maggior parte dei moderni framework PHP come Laravel, Drupal, Magento e Symfony.
Nel seguente tutorial imparerai come scaricare e installare il compositore, insieme ad alcuni elementi essenziali su come lavorare con il compositore su Debian 11 Bullseye.
Prerequisiti
- Sistema operativo consigliato: Debian 11 Bullseye
- Account utente: Un account utente con privilegi sudo o accesso root (comando su) .
- Pacchetti richiesti: wget, PHP 5.3 o successivo
Aggiornamento del sistema operativo
Aggiorna la tua Debian 11 sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:
sudo apt update && sudo apt upgrade
Accesso root o sudo
Per impostazione predefinita, quando crei il tuo account all'avvio con Debian rispetto ad altre distribuzioni, non riceve automaticamente lo stato sudoers. Devi avere accesso alla password root per usare il comando su oppure visita il nostro tutorial su Come aggiungere un utente a Sudoer su Debian.
Installa dipendenze
I seguenti pacchetti sono necessari per scaricare il compositore e per un uso futuro. Nota, se utilizzi una versione specifica di PHP, dovrai adattare i pacchetti PHP seguenti per adattarli alla versione. Ad esempio, l'installazione di PHP 8.0 sarà php8.0-mbstring.
sudo apt install curl wget php-common php-cli php-gd php-mysql php-curl php-intl php-mbstring php-bcmath php-imap php-xml php-zip git unzip
Installa PHP Composer
Il team di Composer ha creato uno script PHP ufficiale per installare e configurare PHP Composer sul tuo sistema. Puoi scaricarlo visitando la pagina di download o aprendo il tuo terminale Debian ed eseguendo quanto segue.
Metodo PHP:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Metodo WGET:
wget -O composer-setup.php https://getcomposer.org/installer
Ora con setup.php scaricato, è il momento di installare il compositore. Questo può essere in due modi diversi, uno in cui puoi installare Composer a livello globale, o la seconda alternativa, che consiste nell'installare in base all'applicazione PHP.
Per installare a livello globale:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
chmod +x /usr/local/bin/composer
Per installare per applicazione:
cd /example-project/php-application && mkdir -p bin
php composer-setup.php --install-dir=bin --filename=composer
chmod +x bin/composer
Come sopra, dovrai accedere alla directory del progetto PHP e creare una directory bin per l'installazione del compositore PHP.
Una volta terminato, conferma che il compositore è installato e di quale build e versione si tratta.
composer --version
Composer version 2.1.8 2021-09-15 13:55:14
Ora prova l'installazione del tuo compositore con il seguente comando:
composer
Esempio di output:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.1.8 2021-09-15 13:55:14
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Shows a short information about Composer.
archive Creates an archive of this composer package.
browse Opens the package's repository URL or homepage in your browser.
cc Clears composer's internal package cache.
check-platform-reqs Check that platform requirements are satisfied.
clear-cache Clears composer's internal package cache.
clearcache Clears composer's internal package cache.
config Sets config options.
create-project Creates new project from a package into given directory.
depends Shows which packages cause the given package to be installed.
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader.
dumpautoload Dumps the autoloader.
exec Executes a vendored binary/script.
fund Discover how to help fund the maintenance of your dependencies.
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package's repository URL or homepage in your browser.
i Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
info Shows information about packages.
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Shows information about licenses of dependencies.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
prohibits Shows which packages prevent the given package from being installed.
reinstall Uninstalls and reinstalls the given package names
remove Removes a package from the require or require-dev.
require Adds required packages to your composer.json and installs them.
run Runs the scripts defined in composer.json.
run-script Runs the scripts defined in composer.json.
search Searches for packages.
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Shows information about packages.
status Shows a list of locally modified packages.
suggests Shows package suggestions.
u Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
update Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
upgrade Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock.
why Shows which packages cause the given package to be installed.
why-not Shows which packages prevent the given package from being installed.
Come lavorare con PHP Composer
Il tutorial ti mostrerà alcune funzioni essenziali quando il compositore PHP è installato per testarne il funzionamento.
Innanzitutto, crea la directory del tuo progetto:
mkdir ~/composer-test
cd ~/composer-test
Quindi, trova un pacchetto da Packagist o, in alternativa, utilizza l'esempio del tutorial ed esegui il comando seguente per inizializzare un nuovo file composer.json e installare il pacchetto carbon:
composer require psr/log
Esempio di output:
Using version ^1.1 for psr/log
./composer.json has been created
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking psr/log (1.1.4)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading psr/log (1.1.4)
- Installing psr/log (1.1.4): Extracting archive
Generating autoload files
Come sopra, il compositore creerà e aggiornerà automaticamente il file composer.json insieme alle dipendenze richieste. In alternativa, puoi installare e/o eseguire il downgrade dei pacchetti esistenti a un numero di versione specifico.
Esempio:
composer require psr/log=1.0
Nella directory del progetto, puoi elencare i file e le directory al suo interno usando il comando ls :
ls -l
Esempio di output:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
- Downgrading psr/log (1.1.4 => 1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
- Downloading psr/log (1.0.0)
- Downgrading psr/log (1.1.4 => 1.0.0): Extracting archive
Generating autoload files
Un'analisi dei termini e dei file elencati.
- compositore.json – File creato per il progetto e tutte le dipendenze PHP.
- compositore.lock – File contenente l'elenco di tutti i pacchetti e le versioni.
- fornitore – Directory in cui vengono scaricate e installate le dipendenze.
Con il tuo progetto, potresti voler o richiedere l'aggiornamento delle dipendenze, e questo può essere fatto eseguendo il seguente comando:
composer update
Esempio di output:
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
Come puoi vedere sopra, nessuna dipendenza richiede l'aggiornamento. Se ci fosse, il processo inizierebbe.
Se non hai più bisogno del modulo, puoi rimuoverlo con il comando remove del compositore:
composer remove psr/log
Esempio di output:
./composer.json has been updated
Running composer update psr/log
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 0 updates, 1 removal
- Removing psr/log (1.0.0)
Generating autoload files
Quando si rimuovono i pacchetti, come per l'installazione, la rimozione aggiornerà automaticamente il file composer.json. Puoi verificarlo usando il comando cat .
cat composer.json
Esempio prima della rimozione del pacchetto psr/log:
{
"require": {
"psr/log": "1.0"
}
}
Esempio dopo la rimozione del pacchetto psr/log:
{
}
Come aggiornare PHP Composer
Una caratteristica utile del compositore PHP è che può eseguire l'aggiornamento automatico all'ultima versione stabile disponibile. Esegui il comando seguente per eseguire l'aggiornamento.
composer self-update
Esempio di output:
You are already using the latest available Composer version 2.1.8 (stable channel).
Come accennato in precedenza, il compositore PHP è già all'ultima versione. Tuttavia, se è disponibile un aggiornamento, ti verrà chiesto di eseguire l'aggiornamento.