Composerest un gestionnaire de dépendances pour PHP (comme npm l'est pour Node.jsor pipis 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.
Ce didacticiel décrit les étapes d'installation de Composer sur CentOS 8. Si vous êtes pressé et que vous ne souhaitez pas vérifier l'intégrité du fichier, faites défiler jusqu'à la section Installation de Composer - Quick Way.
Prérequis #
Assurez-vous que vous remplissez les conditions suivantes avant de continuer :
- Connecté en tant qu'utilisateur avec des privilèges sudo
- Ayez PHP installé sur votre système CentOS 8.
Installation de Composer sur CentOS #
Effectuez les étapes suivantes pour installer Composer sur CentOS 8.
-
Installez le package PHP CLI (interface de ligne de commande) et toutes les autres dépendances avec :
sudo dnf install php-cli php-json php-zip wget unzip
-
Une fois PHP CLI installé, téléchargez le script d'installation de Composer :
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
La commande ci-dessus télécharge un fichier nommé
composer-setup.php
dans le répertoire de travail courant. -
Vérifiez l'intégrité des données en comparant le
SHA-384
du fichier hachage avec le hachage trouvé sur la page Composer Public Keys / Signatures.Le
wget
suivant La commande télécharge la signature du dernier programme d'installation de Composer à partir de la page Github de Composer et la stocke dans une variable nomméeHASH
: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 verified
Sinon, si les hachages ne correspondent pas, vous verrez
Installer corrupt
. Une fois l'intégrité vérifiée, passez à l'étape suivante. -
Exécutez la commande suivante pour installer Composer dans le
/usr/local/bin
répertoire :sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
La commande ci-dessus installe
composer
en tant que commande à l'échelle du système et disponible pour tous les utilisateurs. La sortie ressemblera à ceciAll settings correct for using Composer Downloading... Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
La commande ci-dessus installe
composer
en tant que commande à l'échelle du système et disponible pour tous les utilisateurs. -
Vérifiez l'installation en imprimant la version de Composer :
composer -V
Composer version 1.10.1 2020-03-13 20:34:27
À ce stade, vous avez installé avec succès Composer sur votre système CentOS et vous pouvez commencer à l'utiliser.
Installer Composer [Quick Way] #
Effectuez les étapes suivantes pour installer rapidement Composer sur votre système CentOS 8 :
-
Installez PHP CLI et Zip :
sudo dnf install php-cli php-json php-zip curl unzip
-
Téléchargez Composer avec curl :
curl -sS https://getcomposer.org/installer |php
-
Déplacez le fichier Composer vers
/usr/local/bin
répertoire :sudo mv composer.phar /usr/local/bin/composer
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 le répertoire racine du projet et accédez-y :
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Dans cet exemple, nous utiliserons un package PHP appelé carbon pour créer un exemple d'application qui imprime l'heure actuelle.
Exécutez la commande suivante pour initialiser un nouveau projet Composer et installer le package carbone :
composer require nesbot/carbon
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): 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
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Comme vous pouvez le voir dans la sortie ci-dessus, Composer crée un fichier nommé composer.json
et télécharge 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-rw-r--. 1 vagrant vagrant 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 vagrant vagrant 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 vagrant vagrant 82 Mar 27 18:06 vendor
vendor
est le répertoire dans lequel les dépendances du projet sont stockées.- Le
composer.lock
contient une liste de tous les packages installés, y compris leurs versions. composer.json
est un fichier qui décrit votre projet PHP, y compris les dépendances PHP et d'autres métadonnées.
Composer a des capacités de chargement automatique, qui vous permettent d'utiliser des classes PHP sans avoir besoin du require
ou include
déclarations.
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 qui charge automatiquement toutes les bibliothèques.
Ensuite, nous aliasons Carbon\Carbon
comme Carbon
. La dernière ligne imprime 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: 2020-03-27 22:12:26
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 les plus récentes des packages installés, et si une version plus récente est trouvée et que la contrainte de version correspond à celle spécifiée dans le composer.json
, Composer mettra à jour le package.