M2I : 01. Drupal 10 pour les développeurs Back End
Organisme
92400 COURBEVOIEVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
- En cours de formation, par des études de cas ou des travaux pratiques - Et, en fin de formation, par un questionnaire d'auto-évaluation
Prix
Public
Développeurs Web et/ou développeurs Drupal.
Pré-requis
- Connaître le langage HTML et CSS.
- Des notions de PHP et de Responsive Design sont conseillées.
Objectifs pédagogiques
-Créer son propre module qui sera capable d'interagir avec Drupal
-Utiliser Drupal comme un framework pour accélérer ses développements maison, en s’appuyant sur ses API
-Expliquer le fonctionnement global de Drupal et le container (Symfony 2)
-Adapter le fonctionnement du cœur de Drupal ou de modules communautaires sans toucher à leur code source
Programme détaillé
Jour 1 - Matin
§ Introduction
Présentation rapide de Drupal et de son jargon (noeud, 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
§ 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
§ 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
§ Exemples de travaux pratiques (à titre indicatif)
Etudes de cas :
- Création d'un module de A à Z avec Drupal
- Implémentation d'un plug-in existant dans Drupal
- Utilisation du système de routing de Drupal
- Utilisation du cache avec Drupal
- Utilisation des blocs de Drupal
- Interaction de son site Drupal avec une base de données
- Utilisation des noeuds
- Création d'un formulaire avec Drupal
- Utilisation du système de templating Drupal
- Interaction avec la State API de Drupal
- Les bonnes pratiques de sécurité du code Drupal