Quels sont les buts de la formation ?
Programme de la formation
Introduction à Drupal
Une refonte en profondeur résolument Orientée Objet
Les composants Symfony inclus dans Drupal
Installation de l’environnement
Présentation des outils ligne de commande Drupal Console et Drush
Organisation des répertoires de Drupal 8
Multi-sites
Créer son premier module Drupal
Syntaxe du YAML : typage, échappement, séquence et cartographie
Déclarer son module pour Drupal avec .info.yml
Déclarer son projet avec composer
Principe d'hameçon : hook_help dans le fichier .module
Déclarer les permissions
Déclarer sa première page via un contrôleur
Lier notre page à une URL via routing.yml
Créer un lien de menu via links.menu.yml
Atelier : développer un premier module de page Drupal
Theming (vue)
Retourner un tableau de rendu
Définir ses fichiers de template via l'hameçon theme
Pré-traiter les données à injecter dans le template
Écrire le template pour le moteur Twig
Atelier : définir les vues de son module
Menu
Gérer les menus et les liens
Types de liens spécifiques: actions, tâche locale, contextuel
Définir un plugin
Le gestionnaire de plugin
Les différents type de plugin
Créer un bloc
Déclarer une classe de bloc
Le mettre à disposition via l'annotation @Block
Exposer sa configuration dans l'administration
Prendre en charge le formulaire de configuration de bloc
Atelier : développer le bloc
Créer une page d'administration
Créer un formulaire de configuration
Définir les champs de formulaire via Form API
Validation et soumission des données
Atelier : mettre en place sa page d'administration
Gérer des formulaires avec Form API
Créer un formulaire
Configurer les différents types de champs
Valider les données soumises par l’utilisateur
Altérer les autres formulaires
Définir un service
Altérer les des services existants
Définir ses propres services
Injecter les dépendances
Base de données
Présentation de Schema API
Déclarer une installation de schema
Gérer les montées de version
Présentation de Database API
Interagir avec les données en base via le QueryBuilder