Public visé
Développeurs Web et/ou développeurs Drupal.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Créer votre propre module qui sera capable d’interagir avec Drupal
- Utiliser Drupal comme un framework pour accélérer vos développements maison, en vous appuyant sur vos API
- Expliquer le fonctionnement global de Drupal et le container (Symfony 2)
- Adapter le fonctionnement du coeur de Drupal ou de modules communautaires sans toucher à leur code source
Programme
Jour 1
Introduction
- Présentation rapide de Drupal et de son jargon (node, taxonomie…)
- Présentation et installation des outils de développement (WAMP, éditeur PHP)
- Téléchargement et installation de Drupal
- Installation des outils du développeur : module “Devel”, Firebug
- PHP Objet, les concepts de base : Classes, Interfaces, Injection de dépendance, PSR-4, Annotations
Création d’un module
- Fichiers nécessaires
- Structures des fichiers et autoloading
- PSR-0 et PSR-4
- Concepts hérités de Symfony 2 : Container, Services, Injection de dépendance
Plug-ins
- Qu’est-ce qu’un plug-in ?
- Mécanisme de découverte (fichier YAML, annotation PHP)
- Exemples de plug-in et implémentation
Le système de routing
- Comment Drupal gère le routing
- Comment faire correspondre une URL à une page
- Utilisation des méthodes create() et _construct()
- Créer des URL dynamiques
- Ajouter des liens de menu, liens contextuels, liens d’action et de tâche
Jour 2
Gestion de la configuration
- Comment Drupal gère le cache
- Les différents types de cache
- Cache API : Keys, Contexts, Tags, Max-age
- Les différents modules de cache : Internal Page Cache, Internal Dynamic Page Cache, Big Pipe
- State API
Le système de bloc
- Gestion des blocs avec Drupal
- Introduction aux types de bloc
- Comment créer un bloc avec Bloc Plug-in
La base de données
- Comprendre la couche d’abstraction BDD de Drupal
- Entity API : gestion des entités de contenu et de configuration (EntityTypeManager et EntityQuery)
- Se connecter à la base et effectuer des requêtes simples avec la Database API
- Enregistrer ses propres données en base avec la “Schema API” : fichier d’installation
Les noeuds (exemple d’entité de contenu)
- Qu’est-ce qu’un noeud ?
- Créer un “node module”
- Manipuler les noeuds par la programmation
- Intercepter les actions effectuées sur les noeuds avec les hook_entity_XXX()
- Ajout d’onglet sur chaque page de noeud
Jour 3
Système de templating
- Principes de la couche de thème : séparation fonctionnelle / présentation
- Twig
- Render arrays
- Déclarer son propre formatage sous forme de template
Formulaires
- Créer ses propres formulaires par la programmation avec Form API
- Gérer la validation et la soumission d’un formulaire
- Formulaires AJAX
- Changer la présentation d’un formulaire
- Modifier un formulaire généré par Drupal ou un autre module sans toucher au code source de ce formulaire (hook_form_alter)
State API
- Principe du Configuration Management : fichiers YAML, import / export
- Créer un formulaire dans le Back Office de Drupal
- Ajouter sa propre configuration : manipulation de l’objet Config
- Traduction de configuration
Sécurité
- Comprendre le contrôle d’accès de Drupal
- Protéger l’accès à un bloc
- Protéger l’accès à une page
- Créer son propre système de contrôle d’accès sous forme de service
Modalités d’évaluation des acquis
En cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Pour aller plus loin
Cette formation donne accès à cette formation :