Formation Drupal 8/9 Développement Back-end avancé
- Référence : OPS010B
- Durée : 14 heures
- Certification : Non
- Eligible CPF : Non
CONNAISSANCES PREALABLES
- Connaître le PHP Objet, Drupal 8 en tant que développeur (routing, Form API, Database API...), les bases du développement de module pour Drupal 8 sont indispensables.
- Connaître HTML et CSS
PROFIL DES STAGIAIRES
- Développeurs Web souhaitant exploiter Drupal et comprendre l'intégration de Symfony
OBJECTIFS
- Comprendre les fondements de Drupal au travers de Symfony.
- Comprendre l'injection de dépendance dans Drupal.
- Savoir utiliser l'Event Dispatcher.
- Créer son propre type de plugin.
- Créer un type d'entité de contenu "maison".
METHODES PEDAGOGIQUES
- 6 à 12 personnes maximum par cours, 1 poste de travail par stagiaire
- Remise d’une documentation pédagogique papier ou numérique pendant le stage
- La formation est constituée d’apports théoriques, d’exercices pratiques et de réflexions
METHODES D'EVALUATION DES ACQUIS
- Auto-évaluation des acquis par le stagiaire via un questionnaire
- Attestation de fin de stage adressée avec la facture
FORMATEUR
Consultant-Formateur expert Développement Internet
CONTENU DU COURS Développement Internet
1 - Injection de dépendances
- Quels sont les différents types d’injection ?
- Comment l’injection de dépendance est implémentée dans Symfony
- Comprendre les principes de l’injection de dépendance
2 - Le container de Symfony
- Comprendre à quoi sert le Container
- Quels sont les principaux services de Drupal ?
- Comment déclarer un nouveau service ?
- Comment remplacer un service de Drupal ?
- Concepts hérités de Symfony : le container, les services…
3 - Event Dispatcher
- Connecter des écouteurs à des événements du noyau Drupal
- Enregistrer des « écouteurs » et « abonnés » d’événements
- Propager des événements personnalisés dans du code métier
- Savoir découpler son code avec le gestionnaire d’événements
- Découvrir les patrons de conception « Observateur » et « Médiateur »
4 - Créer son propre type d'entité de contenu
- Déclarer une classe (extension de la classe ContentEntityBase())
- Ajouter le routing de base pour la gestion de son type d’entité
- Déclarer une interface (ContentEntityInterface())
- Déclarer le schema correspondant
- Ajouter les contrôleurs et formulaires nécessaires
5 - Enrichir un type d'entité de contenu
- Ajouter des configuration à un module
- Exposer ses propres tables au module Views
- Ajouter ses propres tables en base
6 - Le pattern Event Dispatcher dans Drupal
- Comment implémenter un event subscriber avec Drupal 8/9 ?
- Intercepter l’événement Kernel request
- Détecter une route et l’utilisateur connecté
7 - Gestion des plugins
- Utiliser le plugin Condition API : ajout d’une condition de visibilité sur les blocs
- Comprendre le fonctionnement de Mail API
- Créer un lien via une classe PHP
- Ajouter un plugin derivative pour les blocs
8 - Créer son propre type de plugin
- Déclaration du gestionnaire de plugin (service)
- Utilisation de la class DefaultPluginManager()
- Choix de la méthode de découverte (annotation PHP)
9 - Web services
- Générer un module et ses différents composants avec Drush
- Créer un service custom permettant d’intégrer un web service
- Déclarer la configuration d’un web service et le formulaire associé
- Récupérer des données d’un web service et les stocker en cache
- Gérer le cache de rendu en base en choisissant une méthode d’invalidation