Drupal 8, la refonte majeure

Comme les Frameworks, Drupal a évolué tout au long de ces dernières années afin de suivre la demande et les tendances. Ces ajouts de fonctionnalités ont considérablement fait augmenter sa taille et complexifié l’outil. Toutefois, Drupal ne devrait plus être considéré comme un CMS mais comme un CMF (Content Management Framework). En fait c’est le cas depuis la version 4.7 avec l’apparition de CCK, la form API et views.

Pourquoi une telle refonte ?

Quand on regarde un peu sous le capot on s’aperçoit qu’il y a énormément de composants et librairies externes utilisés dans cette nouvelle version. Côté PHP pur, c’en est fini de la programmation procédurale qui rebutait tant de développeurs, aujourd’hui Drupal est pleinement orienté objet avec l’utilisation des Namespaces, des Traits et j’en passe. L’interopérabilité des composants a grandement été facilitée grâce aux standards du FIG avec PSR-4 (PSR-0), PSR-3 ainsi que Composer.

Non, Drupal n’a pas été réécrit en Symfony2, mais des composants SF2 ont été utilisés dans Drupal 8. D’ailleurs il existe aussi des composants provenants de Zend Framework comme le rappelle Frédéric G. Marand lors de notre présentation.

D8 aurait pu faire le même choix d’architecture qui a été fait pour Wordpress 4. C’est à dire, ne rien casser et ne faire que des évolutions axées sur la partie fonctionnelle et éditoriale. Or c’est une refonte en profondeur qui a été faite, en rupture totale avec les précédentes éditions. Le but a été de créer un framework Full-stack en n’écrivant que le minimum de code tout en réutilisant les meilleurs composants disponibles. C’est pour cela que des librairies de code telles que Twig, Guzzle ou encore EasyRDF ont été intégrées. Le gain de temps à ne pas maintenir ces composants pourra être utilisé efficacement à la conception du coeur de Drupal.

Le ton est donné, la volonté de cette nouvelle version est de se professionnaliser et de ne plus être vue comme une simple platforme de blog mais bel et bien comme un framework pour réaliser des applications.

Drupal 8, la baffe

Il ne faut pas se leurrer, cette nouvelle version va tout chambouler. Bien plus complexe que les précédentes, il va falloir apprendre de nouvelles choses et comprendre les nouveaux paradigmes et composants avant de se sentir efficace. Néanmoins sur le long terme, cela permettra de créer du code plus maintenable, plus facile à faire évoluer et beaucoup plus simple à déployer.

N’attendez pas pour regarder de près ce qui se cache dans cette nouvelle version, les changements sont tellement nombreux et majeurs que cela peut prendre du temps avant d’être pleinement opérationnel avec les différents composants et librairies intégrés à Drupal 8.

Faut-il avoir peur de Drupal 8 ?

Non, même si l’on parle beaucoup du loup sans le voir, il n’est pas à craindre, bien au contraire. Bien sûr cela voudra dire de passer par une nouvelle phase d’apprentissage mais cela est courant pour tout développeur et je ne connais pas de bon dev qui refuse d’apprendre quelque chose de nouveau. Cette nouvelle version, si elle est utilisée comme composant d’une application va nous permettre de réaliser des applications plus maintenables et plus fun à réaliser. Peut-être que cela deviendra le backend privilégié pour les applications SF2. Personnellement j’ai vraiment hâte de travailler sur des projets orientés services ou composants avec Drupal 8 de façon à pouvoir utiliser d’autres technologies bien plus performantes là où Drupal n’est pas adapté.

Références et articles sur le sujet :