Skip to content

🎓 Synthùse et aller plus loin ​

Vous avez parcouru l'ensemble du cycle de vie d'une Recipe Drupal : de la compréhension du concept à l'exécution en passant par la création. Cette section récapitule les points essentiels et vous ouvre des pistes pour aller plus loin.

5.1 Ce qu'il faut retenir ​

Les concepts fondamentaux ​

ConceptRésumé
RecipeMécanisme déclaratif (YAML) pour installer des modules, des thÚmes et appliquer des configurations sur un site existant
recipe.ymlFichier principal : name, recipes, install, config.import, config.actions
composer.jsonDéclare les dépendances externes de la Recipe (modules, thÚmes contrib)
drush recipeCommande d'application d'une Recipe
simpleConfigUpdateAction pour modifier partiellement une configuration existante
config.importImporte des fichiers YAML de configuration depuis le dossier config/ de la Recipe
core-recipe-unpackExtrait les dépendances d'une Recipe vers le composer.json du projet

Le flux complet en rĂ©sumĂ© ​

1. Créer le dossier de la Recipe
        ↓
2. Déclarer les dépendances (composer.json de la Recipe)
        ↓
3. Rédiger le recipe.yml
        ↓
4. Exporter et placer les fichiers de config dans config/
        ↓
5. composer require [les dépendances]
        ↓
6. drush recipe recipes/[nom-de-la-recipe]
        ↓
7. drush cache:rebuild

💡 Bonne pratique

Créez une Recipe par "couche fonctionnelle" de votre projet : une pour l'admin, une pour l'éditorial, une pour le SEO
 Cette granularité vous permet de les appliquer indépendamment et de les réutiliser sur d'autres projets.

5.2 Bonnes pratiques ​

Idempotence : concevez pour le rejeu ​

Une bonne Recipe peut ĂȘtre appliquĂ©e plusieurs fois sans effet de bord. Pour cela :

  • Utilisez simpleConfigUpdate plutĂŽt que des fichiers de config entiers quand c'est possible.
  • Évitez les actions qui crĂ©ent du contenu (nƓuds, utilisateurs) : elles ne sont pas idempotentes.
  • Testez toujours votre Recipe sur un site vierge et sur un site partiellement configurĂ©.
bash
# Tester l'idempotence : appliquer deux fois
drush recipe recipes/setup-gin-admin
drush recipe recipes/setup-gin-admin
# → Aucune erreur ne doit survenir au second passage

Versioning dans Git ​

Versionnez systématiquement vos Recipes avec votre code :

recipes/
├── setup-gin-admin/
│   ├── recipe.yml        ← VersionnĂ©
│   ├── composer.json     ← VersionnĂ©
│   └── config/           ← VersionnĂ©
└── setup-editorial/
    ├── recipe.yml
    └── ...

⚠ Attention

Ne versionnez pas le dossier vendor/ dans votre Recipe. Les dépendances Composer sont gérées par composer.lock du projet parent.

RĂ©utilisabilitĂ© ​

Conçevez vos Recipes pour ĂȘtre utilisables par d'autres projets :

  • Évitez les configurations trop spĂ©cifiques Ă  un projet (noms de domaine, emails, etc.).
  • Externalisez les valeurs variables dans des simpleConfigUpdate documentĂ©s.
  • Publiez vos Recipes gĂ©nĂ©riques sur Drupal.org pour contribuer Ă  l'Ă©cosystĂšme.

Nommage cohĂ©rent ​

[prefixe]-[contexte]-[fonctionnalite]

Exemples :
  setup-gin-admin       → Configuration de l'admin
  setup-editorial       → Configuration Ă©ditoriale
  setup-seo             → Modules et config SEO
  install-media-suite   → Suite mĂ©dias

5.3 Ressources officielles ​

Documentation Drupal.org ​

RessourceDescription
Recipes (Drupal.org)Documentation officielle complĂšte
API Recipe referenceRéférence du format recipe.yml
Core recipesExemples officiels du core

Outils complĂ©mentaires ​

bash
# Lister toutes les recipes disponibles dans le core
ls web/core/recipes/

# Valider la syntaxe d'un recipe.yml (sans l'appliquer)
drush recipe:validate recipes/setup-gin-admin

# Voir l'aide de la commande recipe
drush help recipe

â„č

La commande drush recipe:validate n'est disponible qu'avec Drush 13+. Elle permet de vérifier la syntaxe et la cohérence de votre recipe.yml sans modifier le site.

🏁 RĂ©capitulatif de la formation ​

💡 Ce que vous savez maintenant faire

  • ✅ Expliquer ce qu'est une Recipe et en quoi elle diffĂšre d'un profil d'installation
  • ✅ Lire et comprendre un recipe.yml (blocs name, recipes, install, config)
  • ✅ Analyser une Recipe officielle du core de Drupal
  • ✅ CrĂ©er une Recipe de A Ă  Z avec dĂ©pendances et configurations
  • ✅ Appliquer une Recipe avec drush recipe et vĂ©rifier le rĂ©sultat
  • ✅ Concevoir des Recipes idempotentes, versionnĂ©es et rĂ©utilisables
Aller plus loin

Pour approfondir les Recipes :

  • Explorez l'initiative Drupal Starshot et ses recipes officielles
  • Étudiez le fonctionnement de drupal/core-recipe-unpack dans le code source
  • Contribuez une Recipe sur Drupal.org en suivant le guide de contribution

Sujets connexes Ă  explorer :

  • Config Split : gĂ©rer des configurations par environnement
  • Features : l'ancienne approche (Ă  connaĂźtre pour les projets legacy)
  • Distributions Drupal : combiner profil + Recipes pour livrer une distribution complĂšte