Drupal 8 : les nouveautés techniques commentées par Dries Buytaert

Le CMS intègre Symfony pour améliorer sa modularité et son système de mise en cache. La sortie de la nouvelle version est annoncée pour l'été 2013.

Lors de l'entretien qu'il nous a accordé jeudi 24 mai à l'occasion de sa venue en France, Dries Buytaert a détaillé les évolutions techniques du futur Drupal 8. Aux côté de l'intégration de HTML5 en natif, "l'évolution principale de cette nouvelle version portera sur la mobilité", a-t-il insisté.

"Drupal 8 permettra d'une part de prendre en charge des applications natives pour les mobiles, avec une intégration par le biais de Web Services RESTfull, d'autre part de bénéficier d'une expérience avancée en termes de navigateurs Web mobiles via des implémentations de HTML5 adaptées à ce type d'écran." (lire l'interview de Dries Buytaert sur la politique produits d'Acquia publiée sur JDN Solutions, dans laquelle il aborde les évolutions fonctionnelles de Drupal 8).


dries buytaert solutions saas logiciel 1252313 195
Dries Buytaert est créateur de Drupal, et directeur technique et fondateur de la société de services Acquia. © Acquia

Sous le capot, la principale évolution de Drupal 8 concerne son rapprochement avec le framework PHP français Symfony. "Nous avons beaucoup travaillé sur le sujet avec Sensio Labs, et les équipes de Fabien Potencier", explique Dries Buytaert. "Symfony a été choisi car il s'agit d'une infrastructure PHP robuste, sans doute l'une des plus robustes dans le monde."

Dans le cadre de Drupal 8, une partie de l'infrastructure sur laquelle est bâtie le cœur du gestion de contenu Web (qui comprend également 40 modules de base) est réécrite pour s'appuyer sur Symfony. Le framework Open Source a pour but d'apporter trois dimensions:

 L'injection de dépendance en vue notamment de renforcer la modularité du CMS grâce à une gestion dynamique des dépendances entre classes,

 La possibilité de gérer la mise en cache d'une page Web par blocs avec le composant ESI de Symfony. L'objectif est par exemple de se donner la possibilité de laisser une partie d'une page se générer dynamiquement sans être mise en cache. "Jusqu'ici, Drupal mettait en cache l'intégralité de la page, ce qui n'était pas toujours adapté aux sites fortement personnalisés", commente Dries Buytaert.

 Les Web Services seront désormais gérés via Symfony, notamment en vue de mieux mettre en œuvre les interactions avec les applications mobiles natives. "Drupal gère déjà des Web Services Rest, mais Symfony prend en charge cette interface de manière plus élégante. Cet aspect permet également d'améliorer la modularité du framework", commente Dries Buytaert.



Un CMS complexe et gourmand en ressources : Dries Buytaert répond aux critiques



Mais, l'intégration de Symfony ne recouvre pas seulement des questions techniques. Elle rejoint aussi des besoins en matière de compétences. "Elle permettra en effet à l'écosystème d'attirer de nouveaux développeurs, en provenance de la communauté Symfony. C'est d'autant plus important dans la mesure où le monde Drupal manque de compétences", reconnait Dries Buytaert.


A la question de la complexité de prise en main de Drupal, Dries Buytaert répond en mettant en avant la capacité du CMS à répondre aux projets de site Web complexe. "Plus riche et complexe fonctionnellement que WordPress, Drupal a été d'emblée orienté vers le collaboratif. Il peut donc être utilisé comme un intranet, mais aussi comme un site Web avec des milliers d'internautes publiant du contenu simultanément", rappelle-t-il.
D'où la nécessité d'un système de gestion de contenu lui même plus complexe, mais aussi un CMS plus extensible et donc également plus gourmand en ressources (une autre critique généralement formulée à l'encontre de Drupal). "C'est une question d'équilibre à trouver entre scalability et performance", note Dries Buytaert, avant d'évoquer l'existence de sites Web à très fort volume de trafic, reposant sur Drupal, comme le site de la Maison Blanche ou un site atteignant plus d'un milliard de pages vues par mois (et dont Dries Buytaert préfère taire le nom).

Enfin, Drupal 7 repose sur PHP 5.3. "Dans Drupal 8, nous mettons en œuvre les namespaces. Cela permet d'éviter les conflits de nommage, et donc de mieux structurer et organiser son code", explique le créateur de Drupal. Confirmant la vision de Xavier Lacot, président de l'AFUP, Dries Buytaert indique aussi que les namespaces représentent aussi par conséquent un levier pour mieux travailler ensemble au sein de la communauté, en facilitant le partage de codes.

Drupal / CMS