Drupagora 2013 : Drupal8 et Symfony2, quel impact ?

Preview:

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

Drupal & SymfonyQuel impact ?

05/12/2013

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

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

Le projet digitald’aujourd’hui

Juste un site internet *FAUX

* so 90’s

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.

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

Comment faire ?

Utiliser Drupal !

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

• Il y a un module pour ça !

• Développer ses propres modules

Quelques difficultés

• Configuration management

• Content staging

• Peu d’outils d’assurance qualité

• Partiellement POO

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

Retours d’expérience

Le projet #fail…

… est un sacré learning

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

Préparer demainLearning #2

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.

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

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

SSO

sage.fr

Sage UK Ekino

Sage

CDN

Ipercast

2011

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

Ils sont parmi nous…

• Bertrand Milliat - Responsable Web - Sage

• Vincent Ramond - Consultant Sénior - Ekino

• Thomas Rabaix - Architecte - Ekino

• Florent Denis - Ingénieur - Ekino

Et demain avec D8 ?

Plus simpleGrâce à quoi ?

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

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…

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

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

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.

POOobjet, design pattern, classe, méthode…

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

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…

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)

Dès aujourd’hui…

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

• Se former à Symfony2

• Drupal groups, Meetup…

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

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)

Les points d’attention

Développeurs

• Symfony2 n’évite pas le code spaghetti

• Ticket d’entrée non négligeable

• Concurrence plus importante

Les bénéfices ?

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

Décideurs

• Drupal comme socle de plateforme digitale

• Industrialisation permet un TTM plus court

• Pérennité de l’investissement

• Faciliter les recrutements

5

Conclusion ?

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

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

Brace yourself, D8 is coming

!

!

!

Questions ?

Annexes

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

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

Drupal 6 = CMSPlug&Play with Built-in Features

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

Drupal 7 = CMFContent Management Framework

Drupal 8 = Framework ?

Drupal 8Framework de gestion de contenus

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

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

Recommended