Installation avec Composer
This content is not available in your language yet.
Composer est le gestionnaire de dépendances standard pour PHP. C’est l’outil obligatoire pour installer et maintenir un projet Drupal 11 moderne.
🤔 Pourquoi Composer ?
Section intitulée « 🤔 Pourquoi Composer ? »Avant Composer (Drupal 7 et avant)
Section intitulée « Avant Composer (Drupal 7 et avant) »- ❌ Téléchargement manuel des modules depuis drupal.org
- ❌ Gestion manuelle des mises à jour
- ❌ Conflits de dépendances fréquents
- ❌ Pas de versionnement des dépendances
Avec Composer (Drupal 8+)
Section intitulée « Avec Composer (Drupal 8+) »- ✅ Installation automatique des modules et leurs dépendances
- ✅ Mises à jour simples avec une seule commande
- ✅ Versions verrouillées dans
composer.lock - ✅ Reproducibilité parfaite entre environnements
- ✅ Autoloading PSR-4 automatique
📦 Les fichiers Composer
Section intitulée « 📦 Les fichiers Composer »composer.json
Section intitulée « composer.json »Le fichier de configuration principal qui décrit votre projet :
{ "name": "drupal/recommended-project", "description": "Project template for Drupal projects", "type": "project", "license": "GPL-2.0-or-later", "require": { "drupal/core-recommended": "^11.0", "drupal/core-composer-scaffold": "^11.0", "drush/drush": "^13.0" }, "require-dev": { "drupal/core-dev": "^11.0" }, "extra": { "drupal-scaffold": { "locations": { "web-root": "web/" } }, "installer-paths": { "web/core": ["type:drupal-core"], "web/modules/contrib/{$name}": ["type:drupal-module"], "web/themes/contrib/{$name}": ["type:drupal-theme"], "web/profiles/contrib/{$name}": ["type:drupal-profile"] } }}Sections importantes
Section intitulée « Sections importantes »| Section | Description |
|---|---|
require | Dépendances de production |
require-dev | Dépendances de développement uniquement |
extra.installer-paths | Où installer les packages Drupal |
extra.drupal-scaffold | Configuration du scaffolding |
composer.lock
Section intitulée « composer.lock »Fichier généré automatiquement qui verrouille les versions exactes de toutes les dépendances.
🛠️ Commandes Composer essentielles
Section intitulée « 🛠️ Commandes Composer essentielles »Créer un nouveau projet
Section intitulée « Créer un nouveau projet »composer create-project drupal/recommended-project:^11.0 mon-projetdrupal/recommended-project: Template officiel Drupal^11.0: Version 11.x (dernière version 11)
Installer les dépendances
Section intitulée « Installer les dépendances »# Installer depuis composer.lock (recommandé en production)composer install
# Mettre à jour les dépendances selon composer.jsoncomposer updateAjouter un module
Section intitulée « Ajouter un module »# Ajouter un module Drupalcomposer require drupal/pathauto
# Ajouter une version spécifiquecomposer require drupal/pathauto:^1.12
# Ajouter en dev uniquementcomposer require --dev drupal/develMettre à jour
Section intitulée « Mettre à jour »# Mettre à jour toutcomposer update
# Mettre à jour un package spécifiquecomposer update drupal/core-recommended --with-dependencies
# Voir les mises à jour disponiblescomposer outdatedSupprimer un package
Section intitulée « Supprimer un package »composer remove drupal/pathautoCommandes utiles
Section intitulée « Commandes utiles »# Afficher les packages installéscomposer show
# Afficher un package spécifiquecomposer show drupal/core
# Vérifier les problèmescomposer diagnose
# Vider le cache Composercomposer clear-cache🔒 Versionnement sémantique
Section intitulée « 🔒 Versionnement sémantique »Composer utilise le versionnement sémantique :
MAJOR.MINOR.PATCH 11 . 0 . 1| Préfixe | Signification | Exemple |
|---|---|---|
^ | Compatible MAJOR | ^11.0 → 11.x.x |
~ | Compatible MINOR | ~11.0.1 → 11.0.x |
>= | Version minimale | >=11.0 |
* | N’importe quelle version | Non recommandé |
📁 Structure après installation
Section intitulée « 📁 Structure après installation »tailstore/├── composer.json # Configuration du projet├── composer.lock # Versions verrouillées├── vendor/ # Dépendances (NE PAS MODIFIER)│ ├── autoload.php # Autoloader généré│ ├── composer/│ ├── drupal/│ └── ...├── web/ # Racine web│ ├── core/ # Drupal core│ ├── modules/│ │ ├── contrib/ # Modules téléchargés│ │ └── custom/ # Vos modules│ ├── themes/│ │ ├── contrib/ # Thèmes téléchargés│ │ └── custom/ # Vos thèmes│ └── sites/└── config/ └── sync/ # Configuration exportée🎯 Installer les modules essentiels
Section intitulée « 🎯 Installer les modules essentiels »Pour notre projet TailStore, installons les modules de base :
# Dans le dossier du projetcd tailstore
# Modules contributifs essentielscomposer require drupal/admin_toolbarcomposer require drupal/pathautocomposer require drupal/tokencomposer require drupal/webformcomposer require drupal/metatag
# Module de développementcomposer require --dev drupal/devel🔄 Workflow quotidien
Section intitulée « 🔄 Workflow quotidien »-
Récupérer le code (si vous travaillez en équipe)
Fenêtre de terminal git pullcomposer installdrush updb -ydrush cim -ydrush cr -
Ajouter une fonctionnalité
Fenêtre de terminal composer require drupal/nouveau_moduledrush en nouveau_module -ydrush cex -ygit add -Agit commit -m "feat: add nouveau_module" -
Mettre à jour Drupal
Fenêtre de terminal composer update drupal/core-recommended --with-dependenciesdrush updb -ydrush cr# Tester le sitegit add -Agit commit -m "chore: update Drupal core"
⚠️ Bonnes pratiques
Section intitulée « ⚠️ Bonnes pratiques »À faire ✅
Section intitulée « À faire ✅ »- Commiter
composer.jsonETcomposer.lock - Utiliser
composer installen production - Verrouiller les versions majeures (
^11.0) - Tester après chaque
composer update
À éviter ❌
Section intitulée « À éviter ❌ »- Ne jamais modifier les fichiers dans
vendor/ - Ne pas commiter le dossier
vendor/ - Ne pas utiliser
composer updateen production - Ne pas mélanger téléchargements manuels et Composer
🐛 Résolution de problèmes
Section intitulée « 🐛 Résolution de problèmes »Conflit de dépendances
Section intitulée « Conflit de dépendances »# Voir les conflitscomposer why-not drupal/some-module
# Forcer une mise à jourcomposer update --with-all-dependenciesMémoire insuffisante
Section intitulée « Mémoire insuffisante »# Augmenter la limite mémoire pour cette commandephp -d memory_limit=-1 /usr/local/bin/composer updateCache corrompu
Section intitulée « Cache corrompu »composer clear-cacherm -rf vendorcomposer install✅ Exercice pratique
Section intitulée « ✅ Exercice pratique »Installez les modules suivants avec Composer :
drupal/admin_toolbar- Barre d’administration amélioréedrupal/pathauto- URLs automatiquesdrupal/token- Jetons pour pathautodrupal/metatag- Méta-tags SEO
Commandes :
composer require drupal/admin_toolbar drupal/pathauto drupal/token drupal/metatagVérifiez avec :
composer show drupal/*🔤 Comprendre le PSR-4
Section intitulée « 🔤 Comprendre le PSR-4 »Le PSR-4 (PHP Standard Recommendation 4) est une norme qui définit comment charger automatiquement les classes PHP. Au lieu d’utiliser require() ou include() manuellement, le PSR-4 permet à Composer de charger les classes automatiquement en fonction de leur namespace.
Avant (sans Composer/PSR-4)
Section intitulée « Avant (sans Composer/PSR-4) »require_once 'includes/MyClass.php';$obj = new MyClass();Avec Composer et PSR-4
Section intitulée « Avec Composer et PSR-4 »// Composer charge automatiquement MyClass via vendor/autoload.php$obj = new MyClass();Le fichier vendor/autoload.php généré par Composer gère toute cette magie. C’est pourquoi il est essentiel de l’inclure dans le point d’entrée de votre application.
Pour plus de détails, consultez:
- PSR-4 sur PHP-FIG - La spécification officielle
- Autoloading dans la documentation Composer
🚀 Étape suivante
Section intitulée « 🚀 Étape suivante »Passez à la Structure des fichiers pour comprendre l’organisation d’un projet Drupal.