M2I FORMATION : 01. Drupal 8/9 pour les développeurs
Organisme
75012 PARISVoir toutes ses formationsAutres organismes proposant cette formation
Durée
21 heuresModalités
Formation
- Classe virtuelle
- Présentiel
Évaluation
En cours de formation, par des études de cas ou des travaux pratiques Et, en fin de formation, par un questionnaire
Prix
Public
Développeurs, intégrateurs, chefs de projet, web designers…
Pré-requis
- Connaître le langage HTML et CSS.
- Des notions de PHP et de Responsive Design sont conseillées.
Objectifs pédagogiques
- Comprendre le système de "theming" (habillage) de Drupal
- Apprendre à contrôler le HTML/CSS généré par Drupal
- Optimiser ses développements avec le framework Drupal 8/9 à l'aide des APIs
- Être capable d'intégrer n'importe quelle charte graphique sous forme de thème Drupal
- Créer son propre thème
- Ajuster le cœur de Drupal ou de ses modules sans en modifier le 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, Editeur PHP)
Téléchargement et installation de Drupal 8
Installation des outils du développeur : module "devel", Firebug
PHP Objet, les concepts de base :
- Classes
- Interfaces
- Injection de dépendance
- PSR-4
- Annotations...
§ Travaux pratiques
Installation des outils, prise en main
§ Les fondamentaux du Theming
Comprendre les principes de base.
Quels sont les fichiers essentiels d'un thème.
Quels sont les différents éléments natifs de Drupal.
Thème de base et héritage de thème.
JOUR 1 Après-midi
§ Les systèmes de templating TWIG
Gestion des templates.
Introduction à Twig.
Préparer un environnement de travail avec Twig
§ Travaux pratiques
Utilisation de TWIG
§ Système de templating (Suite)
Principes de la couche de thème : séparation fonctionnelle / présentation
Approfondissement de Twig
Render Arrays
Déclarer son propre formatage sous forme de template
§ Travaux pratiques
Déclaration de formattage de sortie à partir de templates
JOUR 2 Matin
§ Formulaires et code généré
Comprendre le code HTML et CSS généré par l’outil Drupal
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)
§ Travaux pratiques
Création d’interfaces graphiques
§ Les grandes techniques CSS indispensables à l’intégration de thèmes
Les menus horizontaux sous forme de liste UL LI.
Les mises en page sans tableaux (double colonne, triple colonne...).
Remplacer du texte par une image.
Les boîtes à bords arrondis.
§ Travaux pratiques
Utilisation de différents types de CSS
§ Comment Drupal fabrique le HTML/CSS
Via des templates.
Via des fonctions de thèmes.
Via des modules.
Analyse du HTML/CSS généré par Drupal (imbrication des balises, nommage des classes et des ID...)
Comment intercepter chacune des options ci-dessus pour proposer sa propre version.
§ Travaux pratiques
Analyse du HTML généré par Drupal
JOUR 2 Après-midi
§ Création d'un module
Fichiers nécessaires
Structures des fichiers et autoloading
PSR-0 et PSR-4
Concepts hérités de Symfony :
- Conteneur
- Services
- Injection de dépendance
§ Travaux pratiques
Création d’un module
§ Travaux pratiques
Prise en main de l’outil de développement et création d’un module
§ Plug-in
Qu'est-ce qu'un plug-in ?
Mécanisme de découverte (fichier YAML, annotation PHP)
Exemples de plug-in et implémentation
JOUR 3 Matin
§ 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
§ Travaux pratiques
Intégration du routage dans l’application créée
§ Optimiser le développement avec Cache API
Comment Drupal gère le cache
Différents types de cache
Cache API
- Keys
- Contexts
- Tags
- Max-age
Différents modules de cache
- Internal Page Cache
- Internal Dynamic Page Cache
- Big Pipe
Auto-placeholdering et lazy builders
§ Le système de bloc
Gestion des blocs avec Drupal 8
Introduction aux types de bloc
Comment créer un bloc avec Bloc Plug-in
§ Travaux pratiques
Manipulation du Cache API pour optimisation
JOUR 3 Après-midi
§ Les nœuds (exemple d'entité de contenu)
Qu'est-ce qu'un nœud ?
Créer un "node module"
Manipuler les nœuds par la programmation
Intercepter les actions effectuées sur les nœuds avec les hook_entity_XXX()
Ajout d'onglet sur chaque page de nœud
e développement et création d’un module
§ 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
§ Travaux pratiques
Manipulation de la configuration