54
Drupal & Symfony Quel impact ? 05/12/2013

Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

  • Upload
    ekino

  • View
    4.814

  • Download
    4

Embed Size (px)

DESCRIPTION

Nombreuses sont les directions digitales ayant aussi bien des besoins éditoriaux que métiers. D'un point de vue business, il n'est pas possible de séparer les deux. Basiquement, quels choix avons-nous ? - partir sur un CMS et coder en "CMS"... - partir sur un framework et réinventer le CMS... Aujourd'hui, une des solutions est d'alier le meilleur des 2 mondes, mais a aussi ses problématiques : - comment faire communiquer les 2 solutions ? - où trouver les bons profils compte tenu de expertise différentes ? - comment ne pas complexifier la maintenance et l'exploitation ? Bref, pour ce qui est d'aujourd'hui, c'est possible, mais difficile... Mais demain ?

Citation preview

Page 1: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal & SymfonyQuel impact ?

05/12/2013

Page 3: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

De quoi va-t-on parler ?• Le projet digital d’aujourd’hui

• Comment le réaliser / retours d’expérience

• Et demain, avec Drupal 8 & Symfony

• Se préparer à Drupal

• Points d’attention & bénéfices

Page 4: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Sujets connexes• Drupal 8 - Léon Cros

• Non, Drupal n’est pas juste un CMS - Maxime Topolov

• Les problématiques d’intégration de Drupal dans le SI - Arnaud Ranson & Nicolas Marsaud

• Effectuer des tests modernes pour Drupal - Christophe Villeneuve

Page 5: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Le projet digitald’aujourd’hui

Page 6: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Juste un site internet *FAUX

* so 90’s

Page 7: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Plateformesdigitales, de marque, e-commerce, de services…

Consommation de data fournies par des plateformes tierces. Exposition de data qui seront consommées par des plateformes tierces.

Page 8: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Le projet digital• Editorial, multi-lingue, multi-site, multi-marque

• Multi-devices : desktop, mobile, tablette

• E-commerce, multi-devise

• Personnalisation et fonctionnalités spécifiques

• Interactions fortes avec le SI ou partenaires

Page 9: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Comment faire ?

Page 10: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Utiliser Drupal !

• Oui, s’adapte à tout type de contenu au sens large

• Il y a un module pour ça !

• Développer ses propres modules

Page 11: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Quelques difficultés

• Configuration management

• Content staging

• Peu d’outils d’assurance qualité

• Partiellement POO

Page 12: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Le projet digital✅ Editorial, multi-lingue, multi-site, multi-marque

✅ Multi-devices : desktop, mobile, tablette

✴️ E-commerce, multi-devise

✴️ Personnalisation et fonctionnalités spécifiques

✴️ Interactions fortes avec le SI ou partenaires

Page 13: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Retours d’expérience

Page 14: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Le projet #fail…

Page 15: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

… est un sacré learning

Page 16: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Tout faire vs. bien faireLearning #1

S’il y avait un outil qui faisait tout bien, tout le monde l’utiliserait :-) Drupal fait des choses très bien, mais pas tout… et c’est valable pour toutes les solutions du marché.

Après, certaines solutions sont plus flexibles / intéropérables que d’autres… c’est le cas de Drupal

Page 17: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Préparer demainLearning #2

Page 18: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Aujourd’hui… Demain…

La stratégie et les objectifs d’un projet peuvent (et doivent) évoluer avec le temps. Il faut donc une solution ouverte, permettant de prendre en compte des changements de cap.

Tout n’est malheureusement pas visible en début de projet.

Page 19: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Ou alors…• Utiliser Drupal 7 pour la « gestion éditoriale »

• Utiliser Symfony 2 pour les développements « très » spécifiques

Source: https://drupal.org/project/usage/drupal

Page 20: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Refonte du site sage.fr• Site à 70% éditorial

• 30% pour des fonctionnalités spécifiques :

• Raccordement SSO

• Gestionnaire de formulaires avec logique métier

• Gestion d’une bibliothèque media sur mesure

Page 21: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

SSO

sage.fr

Sage UK Ekino

Sage

CDN

Ipercast

2011

Page 22: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Plateforme Web sage.fr Pivot

SSO

Sage UK Ekino

Sage

Services!Métiers

Caméléon

SI Digital

Paiement

Ogone

CDN

Ipercast

SI

Consumers

Notifications

Rabbit MQ

2013

Page 23: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Ils sont parmi nous…

• Bertrand Milliat - Responsable Web - Sage

• Vincent Ramond - Consultant Sénior - Ekino

• Thomas Rabaix - Architecte - Ekino

• Florent Denis - Ingénieur - Ekino

Page 24: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Et demain avec D8 ?

Page 25: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Plus simpleGrâce à quoi ?

Page 26: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8 - « When It’s Ready »• Customizable: Field power, Customize pages with Views, Highly improved

content editing, New configuration system, Customize display and form modes

• Adaptable: Mobile-friendly, Better markup using HTML 5, More accessible, Parli Italiano?, Web services built in

• More flexibility: Modern OOP approach, Simpler and more unified Entity and Field API, Unified configuration system, Latest frontend libraries, Accessible interfaces made easier

• Stepping off of our island: Symfony 2 and Other Components, Twig makes theming easier, PHPUnit tests, Backbone and Underscore.js for the frontend

• Other great improvements in D8: Migrate from earlier versions of Drupal, Modules removed to make core leaner

Source: https://drupal.org/drupal-8.0

Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres

Page 27: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8 & Symfony• Basé sur le framework Symfony2 full stack

• Intégration de composants Symfony2

• HttpFoundation, HttpKernel, Routing, EventDispatcher, DependencyInjection, ClassLoader, Process, Yaml

• Des standards & bonnes pratiques

• Programmation Orientée Objet, Namespaces, PSR-0, Composer, PHPUnit…

Page 28: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Se préparer à Drupal 8Plus concrètement, de quoi parle-t-on ?

Page 29: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

HTTPrequest, response, header, body, session, cookie, cache, varnish, architecture…

Comprendre les interactions entre le serveur et le client, important pour le diagnostic, la performance et l’architecture

Page 30: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

ReST & WSCCIweb services and context core initiative,api, mobile first…

Séparer complètement la logique métier et la couche de présentation. C’est valable pour vos développements customs.

Page 31: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

POOobjet, design pattern, classe, méthode…

Rendre le code plus lisible, faciliter le travail collaboratif, simplifier la maintenance, faciliter le re-use

Page 32: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Tests Unitairesassurance qualité, intégration continue, critères d’acceptance, tdd…

Framework de tests unitaires, un standard de l’écosystème PHP, réduit les bugs de production, améliore la perception de qualité pour l’end-user, simplifie la conception technique, réduit le stress…

Page 33: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Mais aussi…

• Composer (Gestion des dépendance de l’écosystème PHP)

• Twig (Drupal8, Symfony2, eZ Publish, Magento2…)

• Tests fonctionnels (Behat & Selenium, tester mais surtout concevoir)

• Déploiements automatisés (Capistrano est un Must Have)

Page 34: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Dès aujourd’hui…

• Pré-tester Drupal 8 Alpha / Beta / RC

• Se former à Symfony2

• Drupal groups, Meetup…

Page 35: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Le projet digital✅ Editorial, multi-lingue, multi-site, multi-marque

✅ Multi-devices : desktop, mobile, tablette

✅ E-commerce, multi-devise

✅ Personnalisation et fonctionnalités spécifiques

✅ Interactions fortes avec le SI ou partenaires

Page 36: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

3 options

• Faire les développements dans Drupal

• Utiliser une solution dédiée via intéropérabilité

• Développer avec Symfony2 (solution intermédiaire)

Page 37: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Les points d’attention

Page 38: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Développeurs

• Symfony2 n’évite pas le code spaghetti

• Ticket d’entrée non négligeable

• Concurrence plus importante

Page 39: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Les bénéfices ?

Page 40: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Développeurs• Améliorer la qualité technique des solutions

proposées

• Possibilité de développer des solutions plus orientées métier

• Monter en compétences sur SF2 et les standards

• Prendre de la valeur sur le marché

5

Page 41: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Décideurs

• Drupal comme socle de plateforme digitale

• Industrialisation permet un TTM plus court

• Pérennité de l’investissement

• Faciliter les recrutements

5

Page 42: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Conclusion ?

Page 43: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8 et Symfony• Un socle de développement permettant :

• une gestion éditoriale sur mesure

• le développement de fonctionnalités spécifiques

• les échanges avec le SI

• de construire des solutions pérennes

Page 44: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8 with Symfony2 Components. When it’s ready. What about you?

Page 45: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Brace yourself, D8 is coming

!

!

!

Questions ?

Page 46: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Annexes

Page 47: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Intégrer Symfony2 avec Drupal7 ?• 2 types de stratégies :

• Drupal retourne la réponse si le status code de la page n’est pas 404

• Drupal retourne toujours la réponse, même en cas de status code 404

• Code source et documentation sur le Github d’Ekino

• EkinoDrupalBundle & ekino_drupal_symfony2

• Drupal + Symfony, don’t wait for Drupal8! par Thomas Rabaix

Page 48: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 6 - Février 2008• Introducing the easiest version of Drupal ever: Quick and easy setup, Drag-and-drop

administration, All languages spoken here!, Improved multilingual interface, Quick interface translation

• Great new core modules: Actions and triggers, Sign in with OpenID, Update status module

• Theming: CSS-only theming, Theme developer module, Customize your theme, Enhanced preprocessing, A unified approach, Updated jQuery

• Most secure Drupal release ever: Password strength checking, Granular permissions

• Performance and maintenance: Optimized code, Scalability options, A new menu system, Better file handling, Extended logging, Schema API, Batch API, Scripting from the command line

• It's the little things… Better polls, Forum improvements, Easier path alias management, E-mail notifications, Better anonymous commenting, New teaser handling, Sticky table headers, Custom date formats, Pretty signatures

Source: https://drupal.org/drupal-6.0

Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres

Page 49: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 6 = CMSPlug&Play with Built-in Features

Page 50: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 7 - Janvier 2011

• Key Points: Easier to use, More flexible, More scalable, Open source

• Flexible content, Better theming, Accessible, Images and files, Automated code testing, Improved database support, Better distribution support, Extend

Source: https://drupal.org/drupal-7.0

Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres

Page 51: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 7 = CMFContent Management Framework

Page 52: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8 = Framework ?

Page 53: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Drupal 8Framework de gestion de contenus

Adoptant les standards et bonnes pratiques Interopérable avec les solutions partageant ces mêmes standards

Page 54: Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Source: http://previousnext.com.au/drupal-8-ready