Drupal 8, symfony
Upcoming SlideShare
Loading in...5
×
 

Drupal 8, symfony

on

  • 181 views

 

Statistics

Views

Total Views
181
Views on SlideShare
181
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Drupal 8, symfony Drupal 8, symfony Presentation Transcript

  • 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