Une réponse rapide pourrait être : tout change avec Drupal 8 ! Mais ce ne serait pas tout à fait exact. 

La durée de vie d'une version de Drupal impose des changements importants afin de suivre l'évolution de la technologie, mais des changements trop radicaux peuvent être déconcertants pour ceux qui utilisent Drupal pour créer des sites ou des applications web (sitebuilders, développeurs et designers/intégrateurs). Le cycle de vie de Drupal 6 était de 3 ans. Celui de Drupal 7 sera plutôt de 4 ans. C'est un cycle assez long à l'échelle d'Internet, de ce fait, la seule façon de le justifier est d'avoir une version du CMS très innovante et répondant aux attentes du marché. Drupal 8 ne peut pas se permettre d'être dépassé lors de sa sortie officielle.

Quels sont alors les changements pour ceux qui vont l'utiliser ?

  

Qu'est ce qui change sur Drupal 8 pour les utilisateurs finaux ?

L'utilisateur final est sans doute celui qui verra le moins de changements avec cette nouvelle version. Des efforts ont tout de même été faits afin de lui faciliter la vie au quotidien. Ces améliorations ne sont pas vraiment révolutionnaires, car déjà avec Drupal 7 de nombreux modules "contribs" permettaient une meilleure ergonomie. Les nouveautés touchent principalement l'édition.

WYSIWYG : finalement Drupal 8 embarque un editeur WYSIWYG, en l'occurence CKEditor 4. Les contributeurs seront contents (en tout cas la plupart!). De façon générale, les formulaires du back-office ont été repensés afin d'être plus simples d'utilisation. A vous de juger.

Image retirée.Image retirée.

 

inline editing : on parle d'édition rapide, c'est à dire le fait de pouvoir éditer un champ sans avoir à afficher le formulaire d'édition complet. Jeter un oeil à la capture d'écran suivante pour vous faire une idée.

Image retirée.

Image retirée.

Qu'est ce qui change sur Drupal 8 pour les site-builders?

Les grands principes de bases ne changent pas, donc ceux qui ont déjà utilisé les versions précédentes ne seront pas vraiment surpris. Les briques de base du système (noeuds, taxonomie, blocs, menus, vues...) sont les mêmes, avec l'intégration de fonctionnalités issues de modules "contribs" (Views, CKEditor, Entity Reference, Module Filter, Entity View Mode, Edit, Email...). Au final après avoir installé Drupal 8 on a l'impression d'avoir un Drupal 7 plus complet fonctionnellement et plus flexible encore. Voyons quelques points d'amélioration essentiels.

Multilangue : le système de traduction a été repensé dans son intégralité. De nombreux modules "contribs" ont été intégrés (par exemple L10n Update, Administration Language...). 

Image retirée.Image retirée.

Globalement on peux tout traduire (l'interface, les configurations, les entités) plus facilement et sans avoir recours à des modules "contribs" qui ne donnaient pas forcément satisfaction. Notons quelques points intéressants comme le fait de pouvoir traduire l'anglais par défaut, paramètrer la visibilité des blocs en fonction de la langue, assigner une langue à une vue ou encore installer le site dans la langue de son choix avec les fichiers de bases de Drupal 8.

Image retirée.

Mobilité : dans un monde où l'accès à internet en mobilité n'est plus anecdotique, Drupal 8 se devait de s'adapter, et c'est fait ! De base l'affichage prend en compte les appareils de consultation (PC/Mac, smartphone, tablette). Le thème par défaut est "Responsive" et l'approche "Mobile First" a été adoptée.

Image retirée.

CMI : Configuration Management Initiative. Il s'agit de faciliter le déploiement entre plusieurs instances d'un même site (par exemple Développement, Recette, Preprod et Prod) en exportant la configuration du site sous forme de fichier au format YAML. Drupal 8 utilise toujours la base de données pour stocker localement la configuration (paramètrage via les formulaire du back-office), mais permet de l'exporter sous forme de fichiers que l'on peut alors transférer vers une autre instance. Dans le détail il y a eu de nombreux changements, mais il semble qu'un stockage local sous forme de fichier ait été abandonné, car il posait des problèmes de performance et de stabilité.

Accessibilité : des efforts ont été réalisés par rapport à l'accessibilité, avec entre autres un système d'alertes sonores, l'utilisation de jQuery UI pour les fenêtres modals et l'autocomplétion, ou encore l'emploi du code HTML5 améliorant ainsi la sémantique, donc l'interprètation par des machines destinées aux malvoyants.

Views : tout ou presque a été dit sur le module Views. Il fait maintenant partie du coeur de Drupal et est utilisé à la fois pour le front-office et le back-office. Certains développeurs vont grincer des dents, mais cela va dans le sens d'un CMS orienté vers les site-builders et webmasters. Et puis Views nous fait gagner du temps pour créer des listes; on a alors davantage de temps pour développer des fonctionnalités plus avancées. C'est globalement un très bon point pour Drupal 8.

Entity référence : ce module fait partie des plus importants, car il permet d'établir des relations entre les différentes entités (noeud, utilisateur, terme de taxonomie...). On peut ainsi avoir une structure de données complexe. Entity Reference est maintenant intégré au coeur de Drupal; qui s'en plaindra ?

Nouveau système de gestion des blocs : le système de positionnement des blocs dans les régions, avait certaines limitations comme l'impossibilité de placer le même bloc dans des régions différentes suivant les pages, ou de règler la visibilité d'un bloc en fonction de plusieurs critères (par exemple les chemins de page et les types de contenu). On avait alors recours au module "Context" pour pallier à ces limites. Cela n'est plus nécessaire : pour positionner un bloc on dispose maintenant d'une instance de ce bloc, on peut ainsi placer un même bloc dans des régions différentes avec des paramètres de visibilités différents ! Si l'on ajoute que les blocs sont des entités auxquelles on peut ajouter des champs, êtes-vous convaincu par la puissance des blocs dans Drupal 8 ? 

Nouveaux type de champs : l'intégration de nouveaux types de champ (date, email, téléphone...) ajoute un peu plus de souplesse pour structurer les contenus (ou tout autre entité), mais permet également d'afficher un clavier en fonction du type de champ sur les appareils mobiles. Par exemple si vous souhaitez remplir un champ de type téléphone avec votre tablette, c'est le clavier numérique qui est choisi par défaut. Le remplissage des formulaires est ainsi simplifié.

Web Service : vous avez besoin d'exposer vos données à un système externe ? Drupal 8 vous propose désormais en natif un Web Service capable de fournir un flux (XML ou JSON) contenant n'importe quelle entité ou liste créée avec Views. L'échange de données via une interface REST est maintenant une des fonctionnalités de base de Drupal. Les interconnexions entre différents systèmes sont ainsi facilitées.

Qu'est ce qui change sur Drupal 8 pour les Themers / intégrateurs?

Image retirée.On reproche souvent à Drupal d'avoir une couche de theming assez complexe, et c'est à juste titre. Les choses se sont simplifiées avec Drupal 8, mais une bonne expertise est tout de même requise. Le développement front-end est de façon général de plus en plus compliqué (Responsive Web Design, Adaptive Web Design, Javascript omni-présent...). Drupal 8 ne propose pas d'outils "miracle", mais prend bien mieux en compte ces problématiques du Web Design.

Responsive Design et HTML 5 : le thème de base Bartik est "Responsive" et utilise maintenant le code HTML5. C'est le moins que l'on puisse attendre d'un thème aujourd'hui ! Notons que de nombreux thèmes pour Drupal 7 proposent ces fonctionnalités. Ce n'est donc pas vraiment une révolution !

TWIG : le système de template PHPTemplate a été abandonné au profit de TWIG. Ce dernier utilise une syntaxe simple et intuitive qui ne permet plus l'execution de code PHP (un plus pour la sécurité). Les themers ne seront pas perdus et découvriront avec plaisir que l'on a moins de code dans les templates. C'est un pas en avant vers l'utilisation de technologies non "drupalienne" qui améliorent globalement le système. Ajoutons que TWIG propose également un système de debuggage intégré.

Disparition des fonctions de thème : au revoir les fonctions de thème ! Tout le code HTML produit par Drupal 8 et les modules est sous forme de templates. Toute la structure HTML provient de fichiers TWIG. On a donc de fait plus qu'un seul système de surcharge, ce qui simplifie l'apprentissage de la couche de theming.

jQuery2 et Backbone.js : Drupal 6 avait adopté jQuery, Drupal 8 continue en intégrant la dernière version et en y ajoutant Backbone.js (et de nombreuses autres librairies JS). Les développeurs front-end vont pouvoir nativement créer des interfaces riches utilisant le Javascript. L'emploi systématique du JS est aujourd'hui une tendance à la fois pour les sites Web mais aussi pour le développement d'applications mobiles.

Qu'est ce qui change sur Drupal 8 pour les développeurs?

C'est au niveau développement que l'on trouve les plus grands changements. Le saut entre Drupal 7 et Drupal 8 est très important et le développemnt de ses propres fonctionnalités sous forme de modules nécessite de s'adapter à une nouvelle architecture. C'est au développeur de faire des efforts pour prendre les bonnes habitudes de la programmation orientée objet (POO), si cela n'est pas déjà le cas.

Image retirée.

OOP : les versions précédentes de Drupal reposent largement sur la programmation procédurale. Cette nouvelle version fait table rase du passé et emboite le pas de la propagation orientée objet. On utilise donc maintenant des classes, des interface, l'héritage, l'injection de dépendance, l'autoloading, les annotations PHP... L'adoption de Drupal 8 par les développeurs d'autres technologies sera sans doute plus rapide puisque ces derniers connaissent déjà les grands principes et pourront donc s'adapter rapidement. Moins de "drupalisme" et plus de standardisation permettent d'attirer davantage de développeurs.

intégration de composants Symfony2 : certains composants de Symfony2 sont utilisés dans le coeur de Drupal comme par exemple Routing, HttpFoundation, HttpKernel, DependencyInjection... Cette approche consistant à réutiliser ce qui se fait ailleurs a au moins un avantage : le développement du coeur de Drupal repose sur des bases connues. Ainsi un développeur Symfony2 pourra prendre en main Drupal 8 très rapidement. Par ailleurs l'intégration de composants extérieurs à Drupal permet de ne pas avoir à réinventer la roue. Cela laisse davantage de temps pour ce concentrer sur le développement de fonctionnalités plus spécifiques à Drupal.

Amélioration des APIs : afin d'unifier l'écriture du code, beaucoup de travail a été fait sur les APIs. La notion d'entité s'est généralisée : aux entités contenu, utilisateur, terme de taxonomie... s'ajoutent les entités de configuration. Les APIs correspondantes sont ainsi mieux unifiées, simplifiant leur utilisation. Les développeurs apprécieront la standardisation du code.

En guise de conclusion

Toutes ces nouveautés vous font saliver ! Il faut encore attendre, mais une version beta est en approche. Jamais autant de changements majeurs ont été entrepris avec autant de contributeurs pour les versions précédentes de Drupal on peut donc comprendre aisément, les difficultés à sortir une version stable. Et pour ceux qui trouvent le temps d'attente trop long, il faut se demander si il est vraiment possible d'avoir le meilleur CMS du marché, sans y consacrer des années de développement ? ... et donc de patience :-)

Dans la même catégorie

CMS Drupal

Drupal : LE CMS pour les professionnels ?


Drupal et les structures de données

Que reste-t-il à Drupal ?


Drupal et les structures de données

Drupal et les structures de données