Drupal 8, symfony
Introduction
• Dépôt GitHub
– http://github.com/JeUXdiCode

• Présentation
1.
2.
3.
4.
5.

Qu’est ce que Drupal ?
Pourquoi Symfony ?
Les composants Symfony utilisés dans Drupal 8
Ce qui change pour les développeurs
Module DarkJador (Hello World)
1. Qu’est ce que Drupal ?
•
•
•
•
•
•
•

Un CMS
Version 8
Environnement technique
Communauté
Modules
Références
Utilisations
2. Pourquoi Symfony
• Pourquoi un framework
–
–
–
–

Plus grande communauté
Meilleure prise en main par les devs
Facilité de maintenance
Bonne pratique

• Pourquoi Symfony
–
–
–
–
–

Composantes modulaires
Communauté ouverte
Injection de dépendance
Cache HTTP et ESI
Gestion des webservices REST
3. Les composants Symfony utilisés
dans Drupal 8
•
•
•
•
•
•
•

HttpKernel
Autoloader
DependencyInjection
Routing
EventDispatcher
Twig
HttpCache
3. 1. HTTP Kernel
• Request / Response paradigme
• Event Driven
• MVC
3. 1. HTTP Kernel
3. 2. Autoloader
• Norme PSR-0
– Namespace
– Nommage de classe
– Arborescence

• Composer
3. 3. Dependency Injection
•

class Mailer
{
private $transport;

}

public function __construct()
{
$this->transport = 'sendmail';
}

•
class Mailer
{
private $transport;
public function __construct($transport)
{
$this->transport = $transport;
}
•

}
3. 3. Dependency Injection
• parameters:
# ...
mailer.transport: sendmail
services:
mailer:
class: Mailer
arguments: ["%mailer.transport%"]
newsletter_manager:
class: NewsletterManager
calls:
- [setMailer, ["@mailer"]]
3. 3. Routing
•
•
•
•

Déclarer des routes
Types de Endpoint
Injection de dépendances
Contrôle d’accès
3. 4. EventDispatcher
• Implémentation du pattern Mediator
3. 4. EventDispatcher
Catch Event
$dispatcher = new EventDispatcher();
$listener = new AcmeListener();
$dispatcher->addListener('foo.action', array($listener, 'onFooAction'));
Create Event
class FilterOrderEvent extends Event
{
protected $order;
public function __construct(Order $order)
{
$this->order = $order;
}

}

public function getOrder()
{
return $this->order;
}

$dispatcher = new EventDispatcher();
$event = new FilterOrderEvent($order);
$dispatcher->dispatch(StoreEvents::STORE_ORDER, $event);
3. 5. Twig
• Différent de PHPTemplate
• Filtres Custom
• Exemple
– <span>{{ message | upper }}</span>
3. 4. HttpCache
•
•
•
•

La norme HTTP 1.1 – RFC 2616
Les headers HTTP
Reverse Proxy Cache
Et les sessions ?
3. 4. HttpCache
Header renvoyé par varnish
HTTP/1.1 200 OK
Server: varnish
Content-Type: text/html; charset=utf-8
Content-Length: 15619
Cache-Control: public, max-age=86400
Last-Modified: Wed, 04 Dec 2013 19:13:45 +0000
Expires: Sun, 11 Mar 2014 12:00:00 GMT
Vary: Cookie,Accept-Encoding
X-Varnish-Cache: HIT
3. 4. HttpCache
Header renvoyé par apache
HTTP/1.1 200 OK
Server: apache
Content-Type: text/html; charset=utf-8
Content-Length: 15619
Cache-Control: public, max-age=86400
Last-Modified: Wed, 04 Dec 2013 19:13:45 +0000
Expires: Sun, 11 Mar 2014 12:00:00 GMT
Vary: Cookie,Accept-Encoding
3. 4. HttpCache
• Varnish
– La mise en cache
– Gestion des sessions
– ESI
4. Ce qui change pour les
développeurs
•
•
•
•
•

Arborescence du CMS
Répertoires des modules autoloadés
Routing
Hooks
Composer
4. Ce qui change pour les
développeurs
• Nouvelles solutions frontend
– Backbone
– Underscorejs
– Modernizr
– Préprocesseur CSS ( LESS / SASS )
5. Module DarkJador (HelloWorld)
• Utilise les composants présentés
Conclusion

Contenu connexe

ODP
08 04 mise en place d'un serveur mandataire (proxy)
ODP
08 01 mise en place d'un serveur web
PDF
Présentation CoreOS
PDF
ODP
08 02 mise en place de serveurs virtuels apache 2
PPT
Serveur Web (1)
PDF
Squid squid guard
PPT
PostgreSQL sous linux
08 04 mise en place d'un serveur mandataire (proxy)
08 01 mise en place d'un serveur web
Présentation CoreOS
08 02 mise en place de serveurs virtuels apache 2
Serveur Web (1)
Squid squid guard
PostgreSQL sous linux

Tendances (16)

PDF
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
PPT
Mysql Apche PHP sous linux
PDF
nodejs vs vertx
PDF
Examen
ODP
Etes vous prêts pour le succes ?
PDF
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
PDF
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
PDF
Serveur http
PPSX
Mettre son site en ligne
ODP
ZendFramework2 - Présentation
PDF
05 2014-varnish
PDF
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
PDF
Python + ansible = ♥
PPTX
Nouveautés PHP 7 : Introduction et performances - MeetUP Openska
PDF
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
PDF
Zabbix, garder un oeil toujours ouvert
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Mysql Apche PHP sous linux
nodejs vs vertx
Examen
Etes vous prêts pour le succes ?
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Serveur http
Mettre son site en ligne
ZendFramework2 - Présentation
05 2014-varnish
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Python + ansible = ♥
Nouveautés PHP 7 : Introduction et performances - MeetUP Openska
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Zabbix, garder un oeil toujours ouvert
Publicité

En vedette (20)

PPTX
Drupal Overview For Techies
PPTX
Technologies
DOCX
Kế hoạch bài dạy
DOCX
Sit and get
PPT
Thuyết trình
PPTX
Evaluation q2
DOCX
Script
DOCX
Upload getting pissed off
PPTX
Regulation of advertising in the uk
PPT
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
PPTX
Piosenki patriotyczne
DOCX
Kế hoạch bài dạy
PPT
Wrr ppt
PPTX
Nhóm 1 kỹ sư vật lý
PPTX
Qualitative research feedback and analysis
DOCX
Still image analysis 2 kesha
PPTX
The Top Ten ThingsMyExSaid of 2013
DOCX
Script done
PPTX
SSR book review by: Cara LaBelle
DOCX
Analysing a pop music video conventions (5sos)
Drupal Overview For Techies
Technologies
Kế hoạch bài dạy
Sit and get
Thuyết trình
Evaluation q2
Script
Upload getting pissed off
Regulation of advertising in the uk
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
Piosenki patriotyczne
Kế hoạch bài dạy
Wrr ppt
Nhóm 1 kỹ sư vật lý
Qualitative research feedback and analysis
Still image analysis 2 kesha
The Top Ten ThingsMyExSaid of 2013
Script done
SSR book review by: Cara LaBelle
Analysing a pop music video conventions (5sos)
Publicité

Similaire à Drupal 8, symfony (20)

PPTX
retour sur confoo2011 et Symfony2
PDF
Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023
PDF
Mieux Développer en PHP avec Symfony
PPTX
Introduction à Symfony
PDF
cours.symfony.web2pouringenieurseninformatique
PPTX
Presentation Symfony2
PPTX
Introduction à Symfony
PPTX
Symfony3 overview
KEY
Présentation symfony drupal
PPTX
Symfony2 - Un Framework PHP 5 Performant
PPTX
Atelier Symfony2- Introduction
PDF
Drupal 8 + Symfony 2 = une équipe gagnante
PDF
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
PDF
Symfony2: 30 astuces et bonnes pratiques
PPTX
Symfony 2 : chapitre 1 - Présentation Générale
PDF
Diaporama du sfPot Lillois du 20 mars 2014
PDF
Introduction à Symfony2
ODP
Symfony Best Practices
PDF
Conference drupal-8-drupagora2013
PDF
S51 vos projets web services ibm i a l aide de php
retour sur confoo2011 et Symfony2
Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023
Mieux Développer en PHP avec Symfony
Introduction à Symfony
cours.symfony.web2pouringenieurseninformatique
Presentation Symfony2
Introduction à Symfony
Symfony3 overview
Présentation symfony drupal
Symfony2 - Un Framework PHP 5 Performant
Atelier Symfony2- Introduction
Drupal 8 + Symfony 2 = une équipe gagnante
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Symfony2: 30 astuces et bonnes pratiques
Symfony 2 : chapitre 1 - Présentation Générale
Diaporama du sfPot Lillois du 20 mars 2014
Introduction à Symfony2
Symfony Best Practices
Conference drupal-8-drupagora2013
S51 vos projets web services ibm i a l aide de php

Drupal 8, symfony

  • 2. Introduction • Dépôt GitHub – http://github.com/JeUXdiCode • Présentation 1. 2. 3. 4. 5. Qu’est ce que Drupal ? Pourquoi Symfony ? Les composants Symfony utilisés dans Drupal 8 Ce qui change pour les développeurs Module DarkJador (Hello World)
  • 3. 1. Qu’est ce que Drupal ? • • • • • • • Un CMS Version 8 Environnement technique Communauté Modules Références Utilisations
  • 4. 2. Pourquoi Symfony • Pourquoi un framework – – – – Plus grande communauté Meilleure prise en main par les devs Facilité de maintenance Bonne pratique • Pourquoi Symfony – – – – – Composantes modulaires Communauté ouverte Injection de dépendance Cache HTTP et ESI Gestion des webservices REST
  • 5. 3. Les composants Symfony utilisés dans Drupal 8 • • • • • • • HttpKernel Autoloader DependencyInjection Routing EventDispatcher Twig HttpCache
  • 6. 3. 1. HTTP Kernel • Request / Response paradigme • Event Driven • MVC
  • 7. 3. 1. HTTP Kernel
  • 8. 3. 2. Autoloader • Norme PSR-0 – Namespace – Nommage de classe – Arborescence • Composer
  • 9. 3. 3. Dependency Injection • class Mailer { private $transport; } public function __construct() { $this->transport = 'sendmail'; } • class Mailer { private $transport; public function __construct($transport) { $this->transport = $transport; } • }
  • 10. 3. 3. Dependency Injection • parameters: # ... mailer.transport: sendmail services: mailer: class: Mailer arguments: ["%mailer.transport%"] newsletter_manager: class: NewsletterManager calls: - [setMailer, ["@mailer"]]
  • 11. 3. 3. Routing • • • • Déclarer des routes Types de Endpoint Injection de dépendances Contrôle d’accès
  • 12. 3. 4. EventDispatcher • Implémentation du pattern Mediator
  • 13. 3. 4. EventDispatcher Catch Event $dispatcher = new EventDispatcher(); $listener = new AcmeListener(); $dispatcher->addListener('foo.action', array($listener, 'onFooAction')); Create Event class FilterOrderEvent extends Event { protected $order; public function __construct(Order $order) { $this->order = $order; } } public function getOrder() { return $this->order; } $dispatcher = new EventDispatcher(); $event = new FilterOrderEvent($order); $dispatcher->dispatch(StoreEvents::STORE_ORDER, $event);
  • 14. 3. 5. Twig • Différent de PHPTemplate • Filtres Custom • Exemple – <span>{{ message | upper }}</span>
  • 15. 3. 4. HttpCache • • • • La norme HTTP 1.1 – RFC 2616 Les headers HTTP Reverse Proxy Cache Et les sessions ?
  • 16. 3. 4. HttpCache Header renvoyé par varnish HTTP/1.1 200 OK Server: varnish Content-Type: text/html; charset=utf-8 Content-Length: 15619 Cache-Control: public, max-age=86400 Last-Modified: Wed, 04 Dec 2013 19:13:45 +0000 Expires: Sun, 11 Mar 2014 12:00:00 GMT Vary: Cookie,Accept-Encoding X-Varnish-Cache: HIT
  • 17. 3. 4. HttpCache Header renvoyé par apache HTTP/1.1 200 OK Server: apache Content-Type: text/html; charset=utf-8 Content-Length: 15619 Cache-Control: public, max-age=86400 Last-Modified: Wed, 04 Dec 2013 19:13:45 +0000 Expires: Sun, 11 Mar 2014 12:00:00 GMT Vary: Cookie,Accept-Encoding
  • 18. 3. 4. HttpCache • Varnish – La mise en cache – Gestion des sessions – ESI
  • 19. 4. Ce qui change pour les développeurs • • • • • Arborescence du CMS Répertoires des modules autoloadés Routing Hooks Composer
  • 20. 4. Ce qui change pour les développeurs • Nouvelles solutions frontend – Backbone – Underscorejs – Modernizr – Préprocesseur CSS ( LESS / SASS )
  • 21. 5. Module DarkJador (HelloWorld) • Utilise les composants présentés