Composerest un gestionnaire de dépendances pour PHP (similaire à npm pour Node.jsor pip pour Python). Composer récupérera tous les packages PHP requis dont dépend votre projet et les gérera pour vous.
Ce didacticiel fournit les étapes nécessaires à l'installation de Composer sur les systèmes Debian 9. Nous verrons également comment utiliser Composer pour créer et gérer des projets PHP.
Prérequis #
Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec les privilèges sudo et que PHP est installé sur votre système Debian 9.
Installation de Composer #
Suivez les étapes ci-dessous pour installer Composer sur les systèmes Debian :
-
Commencez par mettre à jour l'index des packages et installez les packages nécessaires avec les commandes suivantes :
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
Une fois les dépendances installées, utilisez le php cli toll pour télécharger le script d'installation de Composer :
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
La commande ci-dessus téléchargera le
composer-setup.php
fichier dans le répertoire de travail courant. -
Nous vérifierons l'intégrité des données du script en comparant le script
SHA-384
hachage avec le dernier hachage du programme d'installation trouvé sur la page Composer Public Keys / Signatures.Exécutez la commande wget suivante pour télécharger la signature attendue du dernier programme d'installation de Composer à partir de la page Github de Composer et la stocker dans une variable nommée
HASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Pour vérifier que le script d'installation n'est pas corrompu, copiez et collez le code suivant dans votre console :
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Si les hachages correspondent, vous verrez le résultat suivant :
Installer verified
Si les hachages ne correspondent pas, vous verrez
Installer corrupt
. Dans ce cas, vous devrez retélécharger le script d'installation de Composer et revérifier la valeur du$HASH
variable avececho $HASH
. Une fois le programme d'installation vérifié, vous pouvez passer à l'étape suivante. -
La commande suivante installera Composer dans le répertoire
/usr/local/bin
répertoire :sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
À ce stade, Composer est installé sur votre système Debian. Il est installé en tant que commande à l'échelle du système et sera disponible pour tous les utilisateurs.
-
Pour vérifier l'installation, tapez simplement :
composer
La commande ci-dessus imprimera la version, les commandes et les arguments de Composer.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
php composer-setup.php
qui créera un fichier nommé composer.phar
dans votre répertoire de travail actuel. Vous pouvez utiliser le composeur en exécutant ./composer.phar <command>.
Démarrer avec Composer #
Maintenant que Composer est installé sur votre système Debian, nous allons vous montrer comment créer un projet PHP avec Composer.
Commencez par créer un répertoire qui sera la racine du projet et contiendra le composer.json
dossier. Ce fichier décrit votre projet PHP, y compris les dépendances PHP et d'autres métadonnées.
Créez le répertoire du projet et basculez-y avec :
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Ensuite, nous allons initialiser un nouveau composer.json
fichier utilisant le composer require <package name>
commande et spécifiez le package que nous voulons télécharger. Dans cet exemple, nous allons créer un exemple d'application qui imprimera l'heure actuelle à l'aide d'un package appelé carbon.
Exécutez la commande suivante pour initialiser un nouveau composer.json
fichier et installez le package carbone :
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.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
Composer va créer un composer.json
fichier et téléchargez et installez carbon et toutes ses dépendances.
Si vous listez le répertoire de votre projet avec le ls
commande, vous verrez qu'elle contient deux fichiers composer.json
et composer.lock
, et un vendor
répertoire.
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 vendor
vendor
- le répertoire où sont stockées les dépendances du projet.composer.lock
- fichier contenant une liste de tous les packages installés, y compris la version des packages.composer.json
- fichier décrivant le projet PHP et toutes les dépendances PHP.
Composer fournit des capacités de chargement automatique qui nous permettent d'utiliser des classes PHP sans avoir besoin de require
ou include
les fichiers.
Créez un fichier nommé testing.php
et collez le code suivant :
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Analysons le code ligne par ligne.
Dans la première ligne après la balise php d'ouverture, nous incluons le vendor/autoload.php
fichier généré automatiquement par Composer. Ce fichier chargera automatiquement toutes les bibliothèques requises.
Ensuite, nous aliasons Carbon\Carbon
comme Carbon
et dans la dernière ligne nous imprimons l'heure actuelle en utilisant le Carbon now
méthode.
Exécutez le script en tapant :
php testing.php
Le résultat devrait ressembler à ceci :
Now: 2018-10-16 21:08:45
Plus tard, si vous devez mettre à jour les packages du projet, saisissez :
composer update
La commande ci-dessus vérifiera les versions plus récentes des packages installés et si une version plus récente est trouvée et la contrainte de version correspond à celle spécifiée dans le composer.json
, Composer mettra à jour le package.