Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
-
Upload
ekino -
Category
Technology
-
view
4.814 -
download
4
description
Transcript of Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupal & SymfonyQuel impact ?
05/12/2013
Qui ?• Thomas VIAL - @tvial
• Manager PHP chez Ekino (250+ personnes)
• Conseil, réalisation, et accompagnement digital
• Pôle PHP :
• 30+ personnes
• Symfony2 & Drupal
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
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?
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