[wpms_breadcrumb reverse="0"]
CMS - Web

Drupal 8, développement avancé avec Symfony 2

Reference : CMSWEB03
3 jours - 1650 €
Prochaines sessions
  • Le 12/12/2018
Drupal 8, développement avancé avec Symfony 2
Objectifs

  • Appréhender les rouages de Drupal 8 au travers du container Symfony 2,
  • Maîtriser le concept de l’injection de dépendance Drupal 8
  • Maîtiser l’utilisation de l’EventDispatcher
  • Développer un plugin personnalisé
  • Développer une entité de configuration personnalisée

Pré requis

  • Connaître le PHP Objet (indispensable)
  • Connaître Drupal 8 en tant que développeur (routing, Form API, Database API, création de modules…).
  • Connaître HTML et CSS TYPE

Modalités pédagogiques

Cours dispensé en mode présentiel avec une alternance d’apports théoriques et méthodologiques, et de mises en situations pratiques

Inscription

Programmes de Drupal 8, développement avancé avec Symfony 2

Injection de dépendance

  • Le concept de l’injection de dépendance
  • Les types d’injection
  • l’injection de dépendance avec Symfony 2

Le conteneur de services : Symfony

  • Fonctionnement et enjeux du Container
  • Les services de Drupal 8
  • Déclarer un nouveau service
  • Modifier un service de Drupal 8
  • Concepts hérités de Symfony 2 : le container, les services…

EventDispatcher

  • Les patrons de conception « Observateur » et « Médiateur »
  • Le gestionnaire d’événements
  • Les événements principaux du framework Symfony 2
  • Connecter des écouteurs à des événements du container Symfony
  • Propager des événements personnalisés dans du code métier
  • Créer de nouveaux types d’événements
  • Enregistrer des « écouteurs » et « abonnés » d’événements

Plugin personnalisé sous Drupal 8

  • Déclarer le plugin manager (service)
  • Class DefaultPluginManager
  • Méthode de découverte (annotation par défaut).

Mise en oeuvre un plugin

  • Condition de visibilité sur les blocs avec le plugin Condition Plugin API
  • Utiliser la Mail API

Personnalisation d’une entit

  • Système de routage pour la gestion de l’entité.
  • Déclarer une interface (ContentEntityInterface).
  • Déclarer une classe (ContentEntityBase).
  • Déclarer le schema correspondant.
  • Les contrôleurs et les formulaires
  • Soumettre ses données à Views.