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. Il est utilisé dans tous les frameworks et plates-formes PHP modernes tels que Laravel, Symfony, Drupal et Magento 2.
Dans ce tutoriel, nous allons passer par les étapes d'installation et d'utilisation de Composer sur une machine CentOS 7.
Prérequis #
Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :
- Connecté en tant qu'utilisateur avec des privilèges sudo
- Ayez PHP 7 installé sur votre système CentOS 7.
Installation de Composer sur CentOS #
Les étapes suivantes décrivent comment installer Composer sur un système CentOS 7.
-
Installez d'abord le package PHP CLI (interface de ligne de commande) et toutes les autres dépendances avec :
sudo yum install php-cli php-zip wget unzip -
Une fois PHP CLI installé, téléchargez le script d'installation de Composer avec :
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"La commande ci-dessus téléchargera le
composer-setup.phpfichier dans le répertoire de travail courant. -
Pour vérifier l'intégrité des données du script, comparez le script
SHA-384hachage avec le dernier hachage du programme d'installation trouvé sur la page Composer Public Keys / Signatures.La commande wget suivante téléchargera la signature attendue du dernier programme d'installation de Composer à partir de la page Github de Composer et la stockera 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, exécutez la commande suivante :
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, le message suivant s'affichera :
Installer verifiedSi les hachages ne correspondent pas, vous verrez
Installer corrupt. Dans ce cas, vous devez retélécharger le script d'installation de Composer et revérifier la valeur du$HASHvariable avececho $HASH. Une fois le programme d'installation vérifié, vous pouvez passer à l'étape suivante. -
Exécutez la commande suivante pour installer Composer dans le
/usr/local/binrépertoire :sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composerLe
composerest installé en tant que commande à l'échelle du système et il sera disponible pour tous les utilisateurs. -
La dernière étape consiste à vérifier l'installation :
composerLa 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]À ce stade, vous avez installé avec succès Composer sur votre système CentOS.
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 CentOS, nous allons vous montrer comment utiliser Composer dans un projet PHP.
Commencez par créer un répertoire qui sera le répertoire racine du projet et maintenez le composer.json fichier.
composer.json Le 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-projectcd ~/my-first-composer-project
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 projet Composer et installer le package carbone :
composer require nesbot/carbon Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (2.2.0): Downloading (100%)
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
Comme vous pouvez le voir dans la sortie ci-dessus, Composer créera le composer.json fichier et il téléchargera et installera carbon et toutes ses dépendances.
Si vous listez le répertoire de votre projet, vous verrez qu'il contient deux fichiers composer.json et composer.lock , et un vendor répertoire.
ls -l -rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- Le
vendorrépertoire est le répertoire dans lequel les dépendances du projet sont stockées. - Le
composer.lockcontient une liste de tous les packages installés, y compris leurs versions. - Le
composer.jsondécrit 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 d'utiliser require ou include les fichiers.
Créez un fichier nommé testing.php et ajoutez 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 qui chargera automatiquement toutes les bibliothèques.
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-09-26 20:08:18
Plus tard, si vous souhaitez mettre à jour vos packages PHP, vous pouvez simplement exécuter :
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.