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 ?
2. Qui ?
•
Thomas VIAL - @tvial
•
Manager PHP chez Ekino (250+ personnes)
•
Conseil, réalisation, et accompagnement digital
•
Pôle PHP :
•
30+ personnes
•
Symfony2 & Drupal
3. 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
4. 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
7. Plateformes
digitales, 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.
8. 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
12. 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
16. Tout faire vs. bien faire
Learning #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
18. 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.
19. 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
20. 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
26. Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres
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
27. 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…
28. Se préparer à Drupal 8
Plus concrètement, de quoi parle-t-on ?
29. HTTP
request, 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
30. ReST & WSCCI
web 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.
31. POO
objet, design pattern, classe, méthode…
Rendre le code plus lisible, faciliter le travail collaboratif, simplifier la maintenance, faciliter le re-use
32. Tests Unitaires
assurance 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…
33. 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)
35. 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
36. 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)
40. Développeurs
5
•
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é
41. Décideurs
5
•
Drupal comme socle de plateforme digitale
•
Industrialisation permet un TTM plus court
•
Pérennité de l’investissement
•
Faciliter les recrutements
43. 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
44. Drupal 8 with Symfony2 Components.
When it’s ready.
What about you?
47. 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
48. Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres
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
49. Drupal 6 = CMS
Plug&Play with Built-in Features
50. Site-Builders / Webmasters / End-users, Theme Developers, Developers, Autres
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
53. Drupal 8
Framework de gestion de contenus
Adoptant les standards et bonnes pratiques
Interopérable avec les solutions partageant ces mêmes standards