Skip to content

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.

  • ❌ 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
  • ✅ 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

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"]
}
}
}
SectionDescription
requireDépendances de production
require-devDépendances de développement uniquement
extra.installer-pathsOù installer les packages Drupal
extra.drupal-scaffoldConfiguration du scaffolding

Fichier généré automatiquement qui verrouille les versions exactes de toutes les dépendances.

Fenêtre de terminal
composer create-project drupal/recommended-project:^11.0 mon-projet
  • drupal/recommended-project : Template officiel Drupal
  • ^11.0 : Version 11.x (dernière version 11)
Fenêtre de terminal
# Installer depuis composer.lock (recommandé en production)
composer install
# Mettre à jour les dépendances selon composer.json
composer update
Fenêtre de terminal
# Ajouter un module Drupal
composer require drupal/pathauto
# Ajouter une version spécifique
composer require drupal/pathauto:^1.12
# Ajouter en dev uniquement
composer require --dev drupal/devel
Fenêtre de terminal
# Mettre à jour tout
composer update
# Mettre à jour un package spécifique
composer update drupal/core-recommended --with-dependencies
# Voir les mises à jour disponibles
composer outdated
Fenêtre de terminal
composer remove drupal/pathauto
Fenêtre de terminal
# Afficher les packages installés
composer show
# Afficher un package spécifique
composer show drupal/core
# Vérifier les problèmes
composer diagnose
# Vider le cache Composer
composer clear-cache

Composer utilise le versionnement sémantique :

MAJOR.MINOR.PATCH
11 . 0 . 1
PréfixeSignificationExemple
^Compatible MAJOR^11.0 → 11.x.x
~Compatible MINOR~11.0.1 → 11.0.x
>=Version minimale>=11.0
*N’importe quelle versionNon recommandé
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

Pour notre projet TailStore, installons les modules de base :

Fenêtre de terminal
# Dans le dossier du projet
cd tailstore
# Modules contributifs essentiels
composer require drupal/admin_toolbar
composer require drupal/pathauto
composer require drupal/token
composer require drupal/webform
composer require drupal/metatag
# Module de développement
composer require --dev drupal/devel
  1. Récupérer le code (si vous travaillez en équipe)

    Fenêtre de terminal
    git pull
    composer install
    drush updb -y
    drush cim -y
    drush cr
  2. Ajouter une fonctionnalité

    Fenêtre de terminal
    composer require drupal/nouveau_module
    drush en nouveau_module -y
    drush cex -y
    git add -A
    git commit -m "feat: add nouveau_module"
  3. Mettre à jour Drupal

    Fenêtre de terminal
    composer update drupal/core-recommended --with-dependencies
    drush updb -y
    drush cr
    # Tester le site
    git add -A
    git commit -m "chore: update Drupal core"
  • Commiter composer.json ET composer.lock
  • Utiliser composer install en production
  • Verrouiller les versions majeures (^11.0)
  • Tester après chaque composer update
  • Ne jamais modifier les fichiers dans vendor/
  • Ne pas commiter le dossier vendor/
  • Ne pas utiliser composer update en production
  • Ne pas mélanger téléchargements manuels et Composer
Fenêtre de terminal
# Voir les conflits
composer why-not drupal/some-module
# Forcer une mise à jour
composer update --with-all-dependencies
Fenêtre de terminal
# Augmenter la limite mémoire pour cette commande
php -d memory_limit=-1 /usr/local/bin/composer update
Fenêtre de terminal
composer clear-cache
rm -rf vendor
composer install

Installez les modules suivants avec Composer :

  1. drupal/admin_toolbar - Barre d’administration améliorée
  2. drupal/pathauto - URLs automatiques
  3. drupal/token - Jetons pour pathauto
  4. drupal/metatag - Méta-tags SEO

Commandes :

Fenêtre de terminal
composer require drupal/admin_toolbar drupal/pathauto drupal/token drupal/metatag

Vérifiez avec :

Fenêtre de terminal
composer show drupal/*

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.

require_once 'includes/MyClass.php';
$obj = new MyClass();
// 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:

Passez à la Structure des fichiers pour comprendre l’organisation d’un projet Drupal.