Drupal 8 Développeur
Objectifs de la formation
- Créer son propre module qui sera capable d'interagir avec Drupal 8.
- Utiliser Drupal comme un framework pour accélérer ses développements maison, en s'appuyant sur ses APIs.
- Comprendre le fonctionnement global de Drupal 8 et le container (Symfony 2).
- Adapter le fonctionnement du coeur de Drupal 8 ou de modules communautaires sans toucher à leur code source.
Contenu du cours
1) Introduction
- Présentation rapide de Drupal et de son jargon (node, taxonomie...).
- Présentation et installation des outils de développement (WAMP, Editeur PHP).
- Téléchargement et installation de Drupal 8.
- Les outils du développeur : Firebug, module "devel".
- PHP objet : les concepts de base (classes, interfaces, injection de dépendance, PSR4, annotations...).
2) Création d'un module
- Les fichiers nécessaires.
- Structures des fichiers (autoloading).
- PSR-0 et PSR-4.
- Concepts hérités de Symfony 2 : container, services et injection de dépendance.
3) Plugins
- Qu'est-ce qu'un plugin ?
- Mécanisme de découverte (annotation PHP).
- Exemple de plugin et implémentation.
4) 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 URLs dynamiques.
- Ajout de liens de menu, de liens contextuels, de liens d'action et d'onglet.
5) Le système de bloc
- Gestion des blocs avec Drupal 8.
- Introduction aux types de bloc.
- Comment créer un bloc avec Bloc Plugin.
6) 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.
7) Les noeuds (exemple d'entité de contenu)
- Qu'est-ce qu'un noeud ?
- Créer un "node module".
- Manipuler les noeuds programmatiquement.
- Intercepter les actions effectuées sur les noeuds avec les hook_entity_XXX().
- Ajout d'onglet sur chaque page de noeud.
8) Système de templating
- Principes de la couche de thème : séparation fonctionnel/présentation.
- TWIG.
- Render Arrays.
- Déclarer son propre formattage sous forme de template.
9) Les formulaires
- Créer ses propres formulaires programmatiquement (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). *
10) Config 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.
11) Sécurité
- 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.