Composer è uno dei più popolari tool per la gestione delle dipendenze di progetti PHP.
L’intento è di facilitare l’installazione e l’aggiornamento di un progetto PHP gestendo automaticamente tutte le dipendenze del programma principale.
Ho avuto necessità di usare Composer perchè il team di Drupal lo usa come programma di installazione.
Questo tutorial vuole spiegare come installarlo e verificarne il funzionamento.
Ho provato personalmente questo tutorial su Ubuntu 14.04 LTS, la teoria vuole che funzioni anche su altre versione, specialmente se successive a quella da me testata, però, come già detto altre volte, le varianti possono essere molte e non è possibile dare certezze.
L’intento è di facilitare l’installazione e l’aggiornamento di un progetto PHP gestendo automaticamente tutte le dipendenze del programma principale.
Ho avuto necessità di usare Composer perchè il team di Drupal lo usa come programma di installazione.
Questo tutorial vuole spiegare come installarlo e verificarne il funzionamento.
Ho provato personalmente questo tutorial su Ubuntu 14.04 LTS, la teoria vuole che funzioni anche su altre versione, specialmente se successive a quella da me testata, però, come già detto altre volte, le varianti possono essere molte e non è possibile dare certezze.
Prima di partire assicuriamoci di avere un sistema aggiornato avendo cura di eseguire:
sudo apt-get upgrade sudo apt-get update
Poi assicuriamoci di avere tutto quello che serve a composer con:
sudo apt-get install curl php-cli php-mbstring git unzip
Scarichiamo il programma di installazione di composer con l’utility curl dopo esserci posizionati sulla nostra home directory:
cd ~ curl -sS https://getcomposer.org/installer -o composer-setup.php
Verifichiamo che quanto scaricato abbia l’hash di tipo SHA-384 indicato nella pagina del progetto con il comando:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '<numero di hash indicato nella pagina del progetto>') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Sostituendo al: ‘<numero di hash indicato nella pagina del progetto>‘ il valore indicato dal sito web del progetto, con il valore presente alla data di scrittura di questo articolo il comando risulta essere il seguente:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Se tutto va’ per il giusto verso la risposta sarà:
Installer verified
A questo punto possiamo lanciare l’installazione di composer con:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Il setup installerà composer nella directory di sistema: /usr/local/bin
Se tutto fila liscio questo è quello che si vedrà apparire a video:
All settings correct for using Composer
Downloading 1.1.1...
Composer successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
Per verificare che composer sia funzionante basta eseguire semplicemente il comando da solo senza nessun parametro:
composer
Il risultato aspettato è:
/ ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.4.1 2017-03-10 09:29:45 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. -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 Short information about Composer. archive Create an archive of this composer package. browse Opens the package's repository URL or homepage in your browser. clear-cache Clears composer's internal package cache. clearcache Clears composer's internal package cache. config Set config options. create-project Create 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 Execute a vendored binary/script. 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. info Show 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 Show 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. remove Removes a package from the require or require-dev. require Adds required packages to your composer.json and installs them. run-script Run the scripts defined in composer.json. search Search for packages. self-update Updates composer.phar to the latest version. selfupdate Updates composer.phar to the latest version. show Show information about packages. status Show a list of locally modified packages. suggests Show package suggestions. update Updates 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.
Buona installazione a tutti
Andrea