Appearance
đ 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 â
| Concept | Résumé |
|---|---|
| Recipe | Mécanisme déclaratif (YAML) pour installer des modules, des thÚmes et appliquer des configurations sur un site existant |
| recipe.yml | Fichier principal : name, recipes, install, config.import, config.actions |
| composer.json | Déclare les dépendances externes de la Recipe (modules, thÚmes contrib) |
drush recipe | Commande d'application d'une Recipe |
simpleConfigUpdate | Action pour modifier partiellement une configuration existante |
config.import | Importe des fichiers YAML de configuration depuis le dossier config/ de la Recipe |
core-recipe-unpack | Extrait 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
simpleConfigUpdateplutĂŽ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 passageVersioning 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
simpleConfigUpdatedocumenté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Ă©dias5.3 Ressources officielles â
Documentation Drupal.org â
| Ressource | Description |
|---|---|
| Recipes (Drupal.org) | Documentation officielle complĂšte |
| API Recipe reference | Référence du format recipe.yml |
| Core recipes | Exemples 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 recipeet 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-unpackdans 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