Composer est devenu l’un des outils essentiels pour le développement en PHP. Avec sa capacité à gérer efficacement les dépendances des projets, Composer simplifie grandement le processus de développement, en permettant aux développeurs d’intégrer facilement des bibliothèques tierces et des composants dans leurs applications.
Qu’est-ce que Composer ?
Composer est un gestionnaire de dépendances pour PHP. Il permet aux développeurs de spécifier les bibliothèques dont leur projet dépend et de les installer automatiquement, en s’occupant également de leurs dépendances respectives. Contrairement aux méthodes précédentes de gestion des dépendances en PHP, Composer utilise un fichier de configuration simple appelé composer.json
pour déclarer les dépendances d’un projet.
Fonctionnalités Principales de Composer
Installation Simple : Composer s’installe rapidement via une ligne de commande ou via un gestionnaire de paquets. Une fois installé, il suffit d’exécuter composer install
dans le répertoire du projet pour télécharger et installer toutes les dépendances spécifiées dans le fichier composer.json
.
Gestion des Dépendances : Composer gère les versions des bibliothèques et des composants, garantissant ainsi la compatibilité entre les différentes versions des dépendances d’un projet.
Autoloading Automatique : Composer génère automatiquement un fichier d’autoloading, permettant aux développeurs d’accéder facilement aux classes des dépendances sans avoir à les inclure manuellement dans leur code.
Réseau Mondial de Paquets : Composer utilise Packagist, un référentiel en ligne qui répertorie des milliers de bibliothèques PHP. Les développeurs peuvent rechercher et intégrer des paquets provenant de cette source ou d’autres référentiels personnalisés.
Mises à Jour Simplifiées : Composer facilite la mise à jour des dépendances. En exécutant composer update
, il vérifie automatiquement les mises à jour disponibles et met à jour les dépendances en conséquence, tout en respectant les contraintes de version spécifiées.
Installation de Composer
Composer s’installe sur ma machine ou sur mon serveur ?
Composer est installé sur votre machine, pas sur votre serveur. Il s’agit d’un outil de ligne de commande que vous utilisez localement pour gérer les dépendances de vos projets PHP. Une fois que vous avez installé Composer sur votre machine, vous pouvez l’utiliser pour créer et gérer des projets PHP sur n’importe quel serveur où vous développez ou déployez vos applications.
Lorsque vous exécutez des commandes Composer telles que composer install
ou composer update
, elles sont exécutées sur votre machine locale et non sur votre serveur. Composer télécharge les bibliothèques et les dépendances nécessaires à partir d’Internet et les installe dans le répertoire que vous nommerez /vendor de votre projet, qui est ensuite inclus dans votre code source.
Une fois que les dépendances sont installées sur votre machine locale, vous pouvez déployer votre application sur votre serveur en incluant le répertoire /vendor dans votre déploiement. Ainsi, votre application peut fonctionner sur le serveur sans avoir besoin d’installer Composer sur ce dernier.
Vérifier que PHP est bien installé sur votre machine
Pour vérifier si PHP est installé sur votre système, vous pouvez ouvrir le terminal (Mac) ou l’invite de commande (Windows) et exécuter la commande suivante :
php -v
Cela affichera la version de PHP installée sur votre système, ainsi que des informations sur la configuration PHP.
Si PHP n’est pas installé, la commande php ne sera pas reconnue et vous recevrez un message d’erreur indiquant que la commande n’a pas été trouvée. Il vous faudra alors commencer par installer php.
Installer Composer sur Windows
Téléchargez et installez Composer : Vous pouvez télécharger l’installateur Composer pour Windows à partir du site officiel de Composer (https://getcomposer.org/download/). Choisissez l’option « Windows Installer » et suivez les instructions d’installation.
Exécutez l’installateur Composer : Une fois le fichier d’installation téléchargé, double-cliquez dessus pour lancer l’installateur. Suivez les étapes d’installation en choisissant les options appropriées.
Vérifiez l’installation : Après avoir installé Composer, ouvrez une nouvelle fenêtre d’invite de commandes (CMD) et exécutez la commande suivante pour vérifier que Composer est correctement installé :
composer --version
Installer Composer sur Mac
Ouvrez le terminal et utilisez la commande suivante pour télécharger l’installateur Composer :
curl -sS https://getcomposer.org/installer | php
Déplacez l’installateur Composer dans un emplacement accessible à tous les utilisateurs en utilisant la commande suivante. Commencez par créer le répertoire /usr/local/bin
:
sudo mkdir -p /usr/local/bin
Une fois le répertoire créé, vous pourrez déplacer le fichier composer.phar dedans en utilisant la commande mv
:
sudo mv composer.phar /usr/local/bin/composer
Les commandes que vous avez fournies sont utilisées pour installer Composer sur votre système. Si vous avez déjà installé Composer, vous n’aurez pas besoin d’exécuter ces lignes de commandes à chaque fois que vous utiliserez Composer dans un projet.
Vous pouvez vérifier que Composer est correctement installé en exécutant la commande suivante dans votre terminal :
composer --version
Pour trouver le chemin /usr/local/bin/
dans le Finder sur un Mac, vous pouvez suivre ces étapes : Ouvrez une nouvelle fenêtre du Finder, dans la barre de menu en haut de l’écran, cliquez sur « Aller » puis sélectionnez « Aller au dossier… ». Entrez le chemin /usr/local/bin/
dans la zone de texte et appuyez sur « Aller ». Vous devriez maintenant voir les fichiers et répertoires contenus dans ce dossier… dont Composer.
Utiliser Composer dans un projet
Nous allons prendre un exemple concret pour comprendre comment utiliser Composer dans un projet. Nous allons utiliser la bibliothèque Parsedown qui est un analyseur Markdown en PHP.
La création du fichier JSON
La première chose que nous allons faire est de créer un fichier JSON à la racine du dossier de notre projet. Ce fichier JSON sera nommé composer.json
. Ensuite, nous spécifions dans composer.json
la clé require qui contiendra un objet. Celui-ci indiquera à Composer quel est le package dont dépend notre projet.
{
"require": {
"erusev/parsedown": "^1.7"
}
}
erusev/parsedown est le nom du package dont notre projet a besoin.
^1.7 est une spécification de version. Ici, cela signifie que Composer recherchera une version de Parsedown égale ou supérieure à 1.7 mais inférieure à 2.0, car les chiffres après le caret ^
définissent la plage des versions compatibles.
Pour connaître le nom du package et sa version, vous pouvez rechercher le nom du package sur des plateformes comme Packagist (https://packagist.org/). Une fois trouvé, vous pourrez consulter le nom et les versions disponibles.
Packagist est un référentiel de packages PHP. Le nom du package se compose du nom du fournisseur et du nom du projet. Cela permet à deux personnes différentes de créer une bibliothèque nommée json. L’un peut s’appeler igorw/json tandis que l’autre peut s’appeler seldaek/json.
Installation des dépendances
Pour installer initialement les dépendances définies pour votre projet, vous devez exécuter la commande update
.
Commencez par placer le curseur du terminal sur le dossier de votre projet : Soit depuis le terminal en utilisant la commande cd et en indiquant le chemin du dossier de votre projet :
cd /chemin/projet/mon_projet_markdown
Soit, si vous n’êtes pas trop à l’aise avec le terminal, vous pouvez ouvrir directement le terminal au chemin du dossier depuis un Mac en faisant un clic droit sur ce dossier et en choisissant Nouveau terminal au dossier.
Idem depuis Windows en suivant la procédure de PC Astuces.
Un fois le curseur du terminal placer sur le dossier, utilisez la commande suivante :
composer update
- Cela résout toutes les dépendances répertoriées dans votre fichier
composer.json
et écrit tous les packages et leurs versions exactes dans le fichiercomposer.lock
, verrouillant ainsi le projet sur ces versions spécifiques. Vous devez valider le fichier composer.lock dans le dépôt de votre projet afin que toutes les personnes travaillant sur le projet soient verrouillées sur les mêmes versions de dépendances (plus d’informations ci-dessous). C’est le rôle principal de la commande update. - Il exécute ensuite implicitement la commande
composer install
. Cela téléchargera les fichiers des dépendances dans le répertoirevendor
. (Le répertoirevendor
est l’emplacement conventionnel pour tout le code tiers d’un projet).
Packagist.org est le référentiel principal de Composer. Un référentiel Composer est essentiellement une source de packages : un endroit à partir duquel vous pouvez obtenir des packages. Packagist vise à être le référentiel central que tout le monde utilise. Cela signifie que vous pouvez automatiquement exiger n’importe quel package qui y est disponible, sans préciser davantage où Composer doit rechercher le package. Si vous allez sur le site Web Packagist.org, vous pouvez parcourir et rechercher des forfaits.
Utilisation des dépendances
Dans le dossier de votre projet, créez la page index.php
et ajoutez lui le code suivant :
<?php
// Inclure l'autoloader de Composer
require 'vendor/autoload.php';
// Créer une instance de la classe Parsedown
$parser = new Parsedown();
// Texte Markdown à convertir en HTML
$markdownText = "
# Titre principal
Ceci est un paragraphe en **gras** et _italique_.
- Liste élément 1
- Liste élément 2
[Un lien](https://example.com)
";
// Convertir le texte Markdown en HTML
$html = $parser->text($markdownText);
// Afficher le résultat HTML
echo $html;
- require ‘vendor/autoload.php’; : Inclut l’autoloader de Composer. Cela permet de charger automatiquement les classes des packages installés via Composer, ici
erusev/parsedown
. - $parser = new Parsedown(); : Crée une instance de la classe
Parsedown
, fournie par le packageerusev/parsedown
. Cette classe contient les méthodes nécessaires pour convertir du texte Markdown en HTML. - $markdownText = » … « ; : Définit une chaîne de texte Markdown à convertir en HTML. Cette chaîne contient un exemple de texte Markdown avec des titres, des styles de texte (gras, italique), une liste à puces et un lien.
- $html = $parser->text($markdownText); : Utilise la méthode
text()
de l’instance de Parsedown pour convertir le texte Markdown en HTML. Le résultat est stocké dans la variable$html
. - echo $html; : Affiche le résultat HTML obtenu après la conversion du Markdown.
Composer, un outil essentiel pour le développement web
Composer offre une vaste bibliothèque de packages pour le développement web. Voici une liste de quelques packages populaires souvent utilisés dans le développement web, couvrant divers domaines tels que les frameworks PHP, les bibliothèques d’authentification, les outils de gestion de base de données, les bibliothèques frontend…
Nom | Source | Description |
---|---|---|
Symfony Framework | symfony/framework-bundle | Framework PHP populaire pour le développement d’applications web. |
Laravel Framework | laravel/laravel | Autre framework PHP populaire, connu pour sa simplicité et son élégance. |
Zend Framework | zendframework/zendframework | Framework PHP robuste et extensible. |
jQuery JavaScript Library | components/jquery | Bibliothèque JavaScript pour la manipulation du DOM et les interactions côté client. |
Bootstrap CSS Framework | twbs/bootstrap | Une bibliothèque frontend CSS pour le développement web. |
PHPMailer | phpmailer/phpmailer | Bibliothèque de messagerie PHP puissante et facile à utiliser. |
PHP Markdown | cebe/markdown | Un parseur Markdown en PHP. |
Respect Validation Library | respect/validation | Bibliothèque PHP pour la validation des données. |
Phinx Database Migrations | phinx/phinx | Outil de migration de base de données pour PHP. |
HTML Purifier | ezyang/htmlpurifier | Bibliothèque PHP pour nettoyer et filtrer le HTML. |
PHPExcel | phpoffice/phpspreadsheet | Bibliothèque PHP pour la manipulation de fichiers Excel. |
TCPDF PDF Library | tecnickcom/tcpdf | Bibliothèque PHP pour la création de fichiers PDF. |
Et bien d’autres encore …
Composer a révolutionné la gestion des dépendances en PHP, simplifiant considérablement le processus de développement et améliorant la qualité des projets. En permettant aux développeurs d’intégrer facilement des bibliothèques tierces, Composer favorise la réutilisabilité du code et accélère le développement des applications PHP. Grâce à sa facilité d’utilisation et à sa vaste communauté de développeurs, Composer reste l’outil de choix pour la gestion des dépendances en PHP.