Blog ENI : Toute la veille numérique !
Bénéficiez de la certification Python (avec e-surveillance) à prix réduit ! Je découvre
Découvrez nos e-formations certifiantes, avec accompagnement et certification. Je découvre
  1. Supports de cours
  2. Drupal 10 - Le guide complet pour le développement de solutions web robustes

Drupal 10 Le guide complet pour le développement de solutions web robustes

Bientôt disponible !
Suivez-nous pour être informé dès la sortie

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-04740-4
  • EAN : 9782409047404
  • Ref. ENI : EIMDRUPAL
Ce guide approfondi sur Drupal 10 est destiné aux développeurs, gestionnaires de contenu et administrateurs Drupal qui aspirent à acquérir des bases solides et des techniques avancées dans le déve­loppement de solutions web robustes et évolutives. Les lecteurs y trouveront de nombreux conseils pratiques, astuces et exemples d’application qui illustrent les meilleures pratiques de développement. Bien qu’axées sur Drupal 10, une grande majorité des notions abor­dées restent pertinentes pour les...
Aperçu du livre papier
  • Niveau Confirmé à Expert
  • Parution décembre 2024
Ce guide approfondi sur Drupal 10 est destiné aux développeurs, gestionnaires de contenu et administrateurs Drupal qui aspirent à acquérir des bases solides et des techniques avancées dans le déve­loppement de solutions web robustes et évolutives. Les lecteurs y trouveront de nombreux conseils pratiques, astuces et exemples d’application qui illustrent les meilleures pratiques de développement. Bien qu’axées sur Drupal 10, une grande majorité des notions abor­dées restent pertinentes pour les futures versions de Drupal.

L’auteur commence par un aperçu historique de Drupal, de ses évolutions récentes et des avantages qui en font un choix privilé­gié pour les développeurs, comme sa modularité, sa sécurité et sa communauté active. Il compare Drupal à d’autres CMS populaires, comme WordPress et Joomla!, en soulignant ses atouts en termes de personnalisation et de flexibilité de design.

Ensuite, le support explore l’installation de l’environnement de déve­loppement, en passant par Docker et DDEV, avant de détailler l’ins­tallation de Drupal 10. Vous apprendrez à créer et à configurer des modules personnalisés, à gérer des types de contenus et à tra­vailler avec des entités personnalisées. Le chapitre sur les struc­tures Drupal explore la taxonomie, les blocs, les menus et les modes d’affichage, tandis que celui sur les utilisateurs et les permissions explique comment gérer les comptes et les rôles.

Les Views, un outil puissant pour afficher du contenu, sont égale­ment couvertes avec des instructions sur leur création et leur gestion. L’auteur se penche ensuite sur la manipulation des entités, la ges­tion des configurations et l’internationalisation. Il met également un accent particulier sur les APIs de Drupal 10. Les formulaires ainsi que des techniques avancées comme la création de services person­nalisés, les tâches planifiées et la gestion des événements sont aussi abordés.

Pour finir, ce support traite de l’optimisation des performances et de la gestion du cache, des tests et de la mise en production, offrant un véritable guide complet pour maîtriser Drupal dans divers contextes de développement web.

Téléchargements

Avant-propos
  1. 1. Public concerné et prérequis
  2. 2. Objectifs
  3. 3. Méthodologie
  4. 4. Conclusion
Introduction à Drupal
  1. 1. Historique et évolution
    1. 1.1 Évolution de Drupal
    2. 1.2 Nouveautés et améliorations
  2. 2. Avantages de Drupal
    1. 2.1 Liberté de création
    2. 2.2 Flexibilité et extensibilité
    3. 2.3 Robustesse et sécurité
    4. 2.4 Communauté active
    5. 2.5 Écosystème modulaire
  3. 3. Pourquoi choisir Drupal ?
    1. 3.1 Flexibilité et polyvalence
      1. 3.1.1 Gestion de contenu et plus
      2. 3.1.2 Enjeux multiples
      3. 3.1.3 Fonctionnalités personnalisées
    2. 3.2 Comparaison avec d'autres CMS
      1. 3.2.1 WordPress
      2. 3.2.2 Joomla!
      3. 3.2.3 Magento
      4. 3.2.4 PrestaShop
      5. 3.2.5 Wix
    3. 3.3 Thèmes et flexibilité de design
      1. 3.3.1 Flexibilité pour des designs personnalisés
      2. 3.3.2 Thèmes Drupal vs thèmes d'autres CMS
      3. 3.3.3 Adaptabilité aux besoins esthétiques
    4. 3.4 Cas d'utilisation courants
    5. 3.5 Cas où Drupal peut ne pas convenir
    6. 3.6 Conclusion
Préparation de l'environnement
  1. 1. Installation de l'environnement de développement
    1. 1.1 Prérequis système
      1. 1.1.1 Prérequis généraux
      2. 1.1.2 Prérequis par système d'exploitation
    2. 1.2 Installation de Docker
      1. 1.2.1 Installation de Docker avec WSL2 sous Windows
      2. 1.2.2 Installation de Docker sur macOS
      3. 1.2.3 Installation de Docker sur Linux
    3. 1.3 Surcouche Docker pour Drupal
      1. 1.3.1 DDEV (recommandé)
      2. 1.3.2 Lando
      3. 1.3.3 Docker4Drupal
      4. 1.3.4 Docksal
  2. 2. Installation de Drupal 10
    1. 2.1 Préparation de DDEV
      1. 2.1.1 Créez un répertoire pour votre projet
      2. 2.1.2 Configuration de DDEV
      3. 2.1.3 Démarrage de DDEV
    2. 2.2 Nouveau projet Drupal via Composer
    3. 2.3 Racine du projet et DOCROOT
      1. 2.3.1 La racine du projet
      2. 2.3.2 Le DOCROOT
    4. 2.4 Installation de Drush
    5. 2.5 Site simple et multisite
      1. 2.5.1 Site simple
      2. 2.5.2 Multisite
    6. 2.6 Paramètres de site Drupal
      1. 2.6.1 Le fichier sites/default/settings.php
      2. 2.6.2 Le fichier sites/example.settings.local.php
      3. 2.6.3 Cas particulier : settings.ddev.php
  3. 3. Répertoires spéciaux
    1. 3.1 Fichiers temporaires
    2. 3.2 Fichiers publics
    3. 3.3 Fichiers privés
    4. 3.4 Fichiers de configuration
  4. 4. Modules Drupal
    1. 4.1 Installer un module via Composer
    2. 4.2 Désinstaller un module Drupal
    3. 4.3 Appliquer un correctif via Composer
    4. 4.4 Mettre à jour un module
      1. 4.4.1 Afficher les mises à jour disponibles
      2. 4.4.2 Mettre à jour les modules
      3. 4.4.3 Appliquer les mises à jour de la base de données
      4. 4.4.4 Reconstruire le cache Drupal
      5. 4.4.5 Aller plus loin
Création de modules personnalisés
  1. 1. Introduction
  2. 2. Structure d’un module Drupal
  3. 3. Création d'un module simple
    1. 3.1 Création de la structure
    2. 3.2 Fichier .info.yml
    3. 3.3 Fichier .module
    4. 3.4 Contrôleur
    5. 3.5 Fichier .routing
    6. 3.6 Reconstruire le cache
    7. 3.7 Activation du module
    8. 3.8 Vérification
  4. 4. Drush pour générer du code
  5. 5. Utilisation des hooks
    1. 5.1 Utiliser un hook existant
    2. 5.2 Créer ses propres hooks
      1. 5.2.1 Alter hooks
      2. 5.2.2 Hooks normaux
      3. 5.2.3 Alter hooks vs hooks normaux
Types de contenu
  1. 1. Introduction
    1. 1.1 Exemples courants
  2. 2. Gérer les types de contenu
    1. 2.1 Créer un type de contenu
    2. 2.2 Modifier un type de contenu
    3. 2.3 Supprimer un type de contenu
    4. 2.4 Paramétrer un type de contenu
      1. 2.4.1 Paramètres du formulaire de soumission
      2. 2.4.2 Options de publication
      3. 2.4.3 Paramètres d'affichage
      4. 2.4.4 Paramètres des menus
    5. 2.5 Autres sections
      1. 2.5.1 Gérer les champs (Manage fields)
      2. 2.5.2 Gérer l'affichage du formulaire (Manage form display)
      3. 2.5.3 Gérer l'affichage (Manage display)
      4. 2.5.4 Gérer les permissions (Manage permissions)
  3. 3. Les champs
    1. 3.1 Gestion des champs
      1. 3.1.1 Créer un champ
      2. 3.1.2 Paramétrer le champ
      3. 3.1.3 Finaliser le champ
      4. 3.1.4 Réutiliser un champ existant
    2. 3.2 Affichage du formulaire
      1. 3.2.1 Les widgets de champ
      2. 3.2.2 Tester le formulaire
    3. 3.3 Affichage du contenu
      1. 3.3.1 Les formatters de champ
      2. 3.3.2 Tester l’affichage
      3. 3.3.3 Accéder à la liste des contenus
Entités personnalisées
  1. 1. Introduction
    1. 1.1 Cas d’utilisation
      1. 1.1.1 Suivi d'événements dans un calendrier
      2. 1.1.2 Gestion de produits dans un site e-commerce
      3. 1.1.3 Suivi des performances des employés
    2. 1.2 En résumé
  2. 2. Entités simples et bundleables
    1. 2.1 Entité simple
    2. 2.2 Entité bundleable
    3. 2.3 Génération d’entités avec Drush
  3. 3. Générer une entité simple
    1. 3.1 Fichiers impactés
    2. 3.2 Personnalisation des champs
  4. 4. Générer une entité bundleable
    1. 4.1 Fichiers impactés et adaptations
    2. 4.2 Personnalisation des champs
    3. 4.3 Champs de base (Base Fields)
      1. 4.3.1 Avantages et inconvénients
      2. 4.3.2 Cas d’utilisation
Structures Drupal
  1. 1. Introduction
    1. 1.1 Concept de structure dans Drupal
    2. 1.2 Types de contenu et entités personnalisées
  2. 2. La taxonomie
    1. 2.1 Création et gestion des vocabulaires
      1. 2.1.1 Créer des vocabulaires
      2. 2.1.2 Gérer les termes
      3. 2.1.3 Ajouter des champs à un vocabulaire
    2. 2.2 Champ de référence à des termes de taxonomie
    3. 2.3 Bonnes pratiques
  3. 3. Les blocs
    1. 3.1 Types de blocs et blocs de contenu
      1. 3.1.1 Gérer les types de blocs
      2. 3.1.2 Gérer les blocs de contenus
    2. 3.2 Placement des blocs
    3. 3.3 Bonnes pratiques
  4. 4. Les menus
    1. 4.1 Création et gestion des menus
    2. 4.2 Liens de menu
      1. 4.2.1 Ajouter un lien de menu
      2. 4.2.2 Modifier un lien de menu
      3. 4.2.3 Supprimer un lien de menu
    3. 4.3 Attribution de menus à des régions
    4. 4.4 Bonnes pratiques
  5. 5. Les Display Modes
    1. 5.1 View Modes pour l'affichage de contenu
      1. 5.1.1 Personnaliser un View Mode
      2. 5.1.2 Afficher une entité dans un View Mode
      3. 5.1.3 Créer un View Mode personnalisé
      4. 5.1.4 Bonnes pratiques
    2. 5.2 Form Modes pour l'affichage de formulaire
      1. 5.2.1 Créer un Form Mode personnalisé
      2. 5.2.2 Afficher un Form Mode personnalisé
Utilisateurs et permissions
  1. 1. Introduction
  2. 2. Gérer les comptes utilisateurs
    1. 2.1 Créer un compte utilisateur
      1. 2.1.1 Création manuelle
      2. 2.1.2 Inscription par l’utilisateur
    2. 2.2 Administrer les comptes utilisateurs
      1. 2.2.1 Annulation de compte utilisateur
    3. 2.3 Personnaliser les comptes utilisateurs
      1. 2.3.1 Ajout de champs personnalisés
      2. 2.3.2 Affichage et gestion des champs
  3. 3. Rôles et permissions
    1. 3.1 Définition des rôles
    2. 3.2 Attribution des permissions
      1. 3.2.1 Bonnes pratiques
  4. 4. Permissions personnalisées
    1. 4.1 Permissions simples
      1. 4.1.1 Création d'une permission simple
      2. 4.1.2 Utilisation dans le code
      3. 4.1.3 Utilisation dans le fichier de routing
    2. 4.2 Permissions d’entités personnalisées
      1. 4.2.1 Déclaration des permissions
      2. 4.2.2 Création de la classe ProjectAccessControlHandler
      3. 4.2.3 Référencement de la classe dans l'entité Project
      4. 4.2.4 Vérification du fonctionnement
    3. 4.3 Permissions dynamiques
      1. 4.3.1 Génération des permissions
      2. 4.3.2 Déclarer la classe générant des permissions
      3. 4.3.3 Définir la logique d’accès
      4. 4.3.4 Vérification du fonctionnement
Views
  1. 1. Introduction
    1. 1.1 Qu'est-ce qu'une View ?
    2. 1.2 Vue d’ensemble
      1. 1.2.1 Les composants
      2. 1.2.2 Réglages du display
      3. 1.2.3 Réglages de base et avancés
  2. 2. Administration des Views
  3. 3. Gestion des composants
    1. 3.1 Définir le format
    2. 3.2 Gérer les champs
    3. 3.3 Critères de filtrage
      1. 3.3.1 Critère de filtrage simple
      2. 3.3.2 Critère de filtrage exposé
    4. 3.4 Critères de tri
      1. 3.4.1 Critère de tri simple
      2. 3.4.2 Critère de tri exposé
  4. 4. Réglages de base
    1. 4.1 Header et Footer
    2. 4.2 Absence de résultats
    3. 4.3 Pagination
  5. 5. Réglages avancés
    1. 5.1 Les relations
    2. 5.2 Filtres contextuels
    3. 5.3 Options du formulaire exposé
    4. 5.4 Autres réglages
  6. 6. Gestion de différents displays
  7. 7. Intégration des Views dans le code
Manipuler les entités
  1. 1. Introduction
  2. 2. Chargement des entités
    1. 2.1 Entity::load vs EntityTypeManager::load
    2. 2.2 Valeurs de champs
      1. 2.2.1 Champ à valeur unique
      2. 2.2.2 Champ à valeur multiple
    3. 2.3 Tester les entités
  3. 3. Opérations sur les entités
    1. 3.1 Création d'entités
    2. 3.2 Modification d'entités
    3. 3.3 Suppression d'une entité
  4. 4. Requêtes avec EntityQuery
    1. 4.1 Requêtes simples
      1. 4.1.1 Déclaration du type d’entité
      2. 4.1.2 Filtrer en utilisant les conditions
      3. 4.1.3 Pagination et tri
      4. 4.1.4 Exécution de la requête
      5. 4.1.5 Compter les résultats
    2. 4.2 Requêtes avancées
      1. 4.2.1 Propriétés de champs
      2. 4.2.2 Champs d’entités référencés
      3. 4.2.3 Conditions OR
      4. 4.2.4 Groupe de conditions (OR et AND)
  5. 5. Affichage des entités
    1. 5.1 Préparation du contrôleur
    2. 5.2 Renderable Array
    3. 5.3 Affichage d’un champ
    4. 5.4 Affichage d’un View Mode d’entité
Les configurations
  1. 1. Introduction
    1. 1.1 Contenus et configurations
    2. 1.2 Gestion et stockage
  2. 2. Exporter des configurations
  3. 3. Importer des configurations
  4. 4. Ignorer des configurations
  5. 5. Les états (states)
    1. 5.1 Mise en maintenance du site
    2. 5.2 Autre cas d’utilisation
Langues et localisation
  1. 1. Introduction
    1. 1.1 Gérer les langues
    2. 1.2 Ajout de nouvelles langues
    3. 1.3 Détection et sélection
    4. 1.4 Changement de langue
  2. 2. Traduire l’interface
    1. 2.1 Administrer la traduction d’interface
    2. 2.2 Rendre traduisibles des chaînes de caractères
      1. 2.2.1 En PHP
      2. 2.2.2 En Twig
      3. 2.2.3 En JavaScript
      4. 2.2.4 Contexte de traduction
    3. 2.3 Exporter et importer des traductions
      1. 2.3.1 Exporter des traductions
      2. 2.3.2 Importer des traductions
  3. 3. Traduire les contenus
    1. 3.1 Activer la traduction des contenus
    2. 3.2 Ajouter des traductions aux contenus
    3. 3.3 Views et contenus traduits
      1. 3.3.1 Affichage exclusif des contenus traduits
      2. 3.3.2 Affichage de la traduction avec repli sur l'original
  4. 4. Traduire les configurations
    1. 4.1 Traduire la configuration d’entités
    2. 4.2 Traduire la configuration des champs
    3. 4.3 Traduire les configurations spécifiques
    4. 4.4 Exporter les traductions de configuration
Les formulaires
  1. 1. Introduction
  2. 2. Formulaire personnalisé
    1. 2.1 Les variables $form et $form_state
    2. 2.2 Form API et documentation
    3. 2.3 Les éléments de formulaire
      1. 2.3.1 Textfield
      2. 2.3.2 Textarea
      3. 2.3.3 Select
      4. 2.3.4 Checkbox
      5. 2.3.5 Radios et Checkboxes
    4. 2.4 Les éléments spéciaux
      1. 2.4.1 markup
      2. 2.4.2 container
      3. 2.4.3 submit
      4. 2.4.4 button
      5. 2.4.5 actions
    5. 2.5 Validation
      1. 2.5.1 Type de champ et attributs
      2. 2.5.2 Champ obligatoire
      3. 2.5.3 Validation par élément
      4. 2.5.4 Validation du formulaire
    6. 2.6 Soumission
    7. 2.7 Les states
    8. 2.8 AJAX
      1. 2.8.1 Utilisation simple
      2. 2.8.2 Utilisation des AJAX Callback Commands
  3. 3. Formulaire de configuration
    1. 3.1 Générer le formulaire de configuration
    2. 3.2 Sauvegarde et configuration par défaut
    3. 3.3 Lire et manipuler une configuration
      1. 3.3.1 Lire la configuration
      2. 3.3.2 Modifier la configuration
      3. 3.3.3 Supprimer la configuration
Techniques avancées
  1. 1. Introduction
  2. 2. Librairies personnalisées
    1. 2.1 Créer et déclarer une librairie
      1. 2.1.1 Importance de Once JS avec BigPipe
      2. 2.1.2 Fichiers JavaScript et CSS
    2. 2.2 Injecter une librairie
    3. 2.3 Utiliser les drupalSettings
  3. 3. Services
    1. 3.1 Créer des services personnalisés
    2. 3.2 Utiliser les services personnalisés
    3. 3.3 Optimiser l’appel des services
  4. 4. Tâches planifiées et traitement par lots
    1. 4.1 Tâches CRON
      1. 4.1.1 Déclencher les tâches CRON
      2. 4.1.2 Administrer les tâches CRON
      3. 4.1.3 Créer une tâche CRON personnalisée
    2. 4.2 Queue Worker
      1. 4.2.1 Créer un Queue Worker
      2. 4.2.2 Ajouter des éléments à une queue
    3. 4.3 Opérations Batch
      1. 4.3.1 Préparation du Batch
      2. 4.3.2 Ajout d'opérations
      3. 4.3.3 Finalisation et exécution du batch
      4. 4.3.4 Fonctions de rappels
      5. 4.3.5 Fonction de finalisation
      6. 4.3.6 Résultat et visualisation
  5. 5. Événements et abonnés d'événements
    1. 5.1 S’abonner à un événement
    2. 5.2 Événements personnalisés
    3. 5.3 Déclencher les événements
Performance et cache
  1. 1. Introduction
  2. 2. Compression et Cache Navigateur
    1. 2.1 Activer les compressions
    2. 2.2 Browser Caching
      1. 2.2.1 Apache et .htaccess
      2. 2.2.2 Cache-Control max-age
    3. 2.3 Vider le cache
  3. 3. Gérer le cache Drupal
    1. 3.1 Modules de cache
      1. 3.1.1 Internal Page Cache
      2. 3.1.2 Internal Dynamic Page Cache
    2. 3.2 Cache Tags
      1. 3.2.1 Les différents types de Cache Tags
      2. 3.2.2 Invalidation du cache basé sur les tags
      3. 3.2.3 Ajout de Cache Tags
    3. 3.3 Cache Context
      1. 3.3.1 Assignation de Cache Contexts
      2. 3.3.2 Cumul des Cache Contexts
    4. 3.4 Cache max-age
    5. 3.5 Cache API
      1. 3.5.1 Écrire dans le cache
      2. 3.5.2 Récupérer un élément en cache
      3. 3.5.3 Invalider ou supprimer le cache
      4. 3.5.4 Utiliser des Cache Tags
  4. 4. Les styles d’image
    1. 4.1 Créer un style d’image
    2. 4.2 Utiliser un style d’image
      1. 4.2.1 Depuis un champ Image
      2. 4.2.2 Depuis le code
    3. 4.3 Bonnes pratiques
    4. 4.4 Aller plus loin
Les plugins
  1. 1. Introduction
  2. 2. Bloc dynamique
    1. 2.1 Création d’un plugin de type bloc
    2. 2.2 Utilisations avancées
      1. 2.2.1 Afficher les articles adjacents
      2. 2.2.2 Afficher un formulaire
  3. 3. Élément de menu dynamique
    1. 3.1 Création d'un élément de menu dynamique
    2. 3.2 Configuration de l'élément de menu
    3. 3.3 Intégration dans un menu spécifique
    4. 3.4 Test de l’affichage
  4. 4. Type de champ
    1. 4.1 Field Type
    2. 4.2 Field Widget
    3. 4.3 Field Formatter
    4. 4.4 Test et vérification
Thème personnalisé
  1. 1. Introduction
    1. 1.1 Pourquoi utiliser un thème existant ?
    2. 1.2 Quelques thèmes notables
  2. 2. Gérer les thèmes
    1. 2.1 Installer et activer un thème
    2. 2.2 Créer un sous-thème
  3. 3. Structure d'un thème
    1. 3.1 Déclaration (info.yml)
    2. 3.2 Fichier .theme
    3. 3.3 Libraries
      1. 3.3.1 SCSS et CSS
      2. 3.3.2 JavaScript
      3. 3.3.3 Multiple libraries
    4. 3.4 Breakpoints
  4. 4. Personnaliser le thème
    1. 4.1 Activer le mode debug
    2. 4.2 Surcharger un template
      1. 4.2.1 Suggestions de template
      2. 4.2.2 Identifier le template à surcharger
      3. 4.2.3 Créer le fichier de template
      4. 4.2.4 Enregistrer et tester
      5. 4.2.5 Gérer les variables
    3. 4.3 Gérer les régions
      1. 4.3.1 Créer une région
      2. 4.3.2 Placer des blocs dans la nouvelle région
      3. 4.3.3 Finaliser l’apparence
  5.  
  6.  
  7. Index
Auteur : Nicolas BÉDÉ

Nicolas BÉDÉ

Consultant et développeur Fullstack spécialisé dans Drupal depuis 2011, Nicolas BÉDÉ a collaboré avec diverses entreprises, des grandes sociétés aux clients plus modestes, en travaillant sur toutes les versions de Drupal depuis la 7. Expert en intégration de solutions Drupal, il contribue à la création de plateformes robustes et fonctionnelles, répondant aux besoins spécifiques de chaque projet. Passionné de jeux de rôle, Nicolas BÉDÉ utilise également Drupal comme support interactif pour partager les règles, le contenu et des outils autour de son propre univers (Worlds Awakening), enrichissant ainsi la communauté de joueurs tout en promouvant les valeurs collaboratives et innovantes de Drupal.
Dans ce livre, il transmet au lecteur toute son expertise sur ce CMS puissant.
En savoir plus

Nos nouveautés

voir plus