Pourquoi Drupal?

Par Le Barman - Vendredi 7 septembre 2018
Tags
tribune
Vignette

Parce qu’on a que trop souvent entendu:

"Drupal c'est c'est une usine à gaz..."

Ou encore:

"Drupal c'est de la merde."

On s'est dit qu'il était temps de prendre notre plume et de défendre notre client.

Pourquoi tant de haine?

Si Drupal a soulevé de si lourdes critiques c'est tout d'abord parce qu’il n'est pas né de la dernière pluie. Sans entrer dans les détails c'est essentiellement depuis la version 6 qu'il est devenu un CMS de premier plan et adopté massivement. Souvent comparé à Joomla ou Wordpress il se démarque de ces derniers sur un aspect précis, sa vocation à être "bidouillé de l’intérieur". À tel point qu'on peut qualifier Drupal de CMS-Framework. Là ou Wordpress peut être modelé à souhait rapidement via son interface par le téléchargement, l'activation de plugin leur configuration et le branchement de widget ou de fonctionnalités par simples shortcodes, Drupal lui se retrouve vite limité et nécessite d'ouvrir le capot.

Et c'est là que le bât blesse.

Les webmasters ou les apprentis devs peuvent très vite trouver la logique et le fonctionnement de Drupal strictes compliqués et contre intuitifs. Sans doute à juste titre. On aurait alors pu penser, à l'instar de Linux que les développeurs ou les érudits le porteraient dans leurs cœurs mais ce n'était pas pas vraiment ça non plus... Drupal était philosophiquement le maillon manquant entre un CMS et un framework. Une positionnement judicieux mais mis à mal par un écosystème ultra spécifique qui a trop longtemps fait la part belle à la programmation procédurale. De ce fait alors que les gros frameworks du marché ( Symfony, Zend... ) reprenaient des patterns et de principes communs modernes, Drupal poursuivait sa route dans son coin comme un autiste. Tant et si bien que la courbe d'apprentissage n'était pas plus forcément plus simple pour un dev expérimenté que pour un débutant.
C'est ainsi que les critiques de uns et les incompréhensions des autres ont pu rentrées en phases et faire monter cette relative mauvaise réputation autour de Drupal.

Puis Drupal 8

Drupal 8 est arrivé et pas mal de choses ont changées. La philosophie reste la même mais l’écosystème Drupal s'est enfin ouvert au monde. Il a butiner à gauche à droite ce qui se faisait et qui marchait bien. On retiendra l'utilisation de nombreuses librairies issues de Symfony, l'utilisation d'un moteur de template twig, l’intégration de composer et le passage à du code bien plus orienté objet. Tout n'a pas disparu pour autant l'héritage basé sur les fameux hook est toujours là mais la transition via les events semble avoir été amorcée et sera sans doute un sujet de premier plan lorsque Drupal 9 se dessinera.

Plus simple d'accès

La fameuse courbe d'apprentissage en a pris un coup est c'est une bonne chose. Désormais il est globalement plus aisé pour un débutant (disposant tout de même des bases en php) de comprendre et d’appréhender Drupal. Quant à un dev expérimenté s'il provient de Symfony / Laravel et autres, ce sera encore + simple. Une fois la philosophie des hook digérée les choses se comprendront assez naturellement.

Une véritable politique de sécurité

Qu'il s'agisse du cœur de Drupal, de modules ou thèmes de la communauté, la team de sécurité Drupal est partout. Le système de mise à jour est clair, soit un élément doit être mis à jour pour des raisons de sécuritéNotification de mise à jour de sécurité

soit il peut être mis à jour pour des améliorations ou des corrections de bugs.

zone de notification de mise à jour facultative de module

 

 

 


Évidement pour facilité le partage de la communauté certains modules ou thèmes ne sont pas couverts par la security team. L'utilisation de leur code est donc à nos risques et périls. C'est toujours indiqué clairement.
De plus, tous les modules sont intégralement gratuits et accessible sur www.drupal.org/project/. pas de freemium / premium comme chez Wordpress où on n'y comprend pas toujours grand chose.

Un back et un front

Dans sa configuration de déploiement la plus basique Drupal fait clairement la distinction entre le fonctionnel et le rendu. Si tout et correctement mis en place, intégrateurs et devs peuvent travailler de concert sans s’entretuer. Seul bémol: le système de rendu interne de Drupal qui n'est pas toujours évident à appréhender et à maîtriser. Pour faire simple disons que tant que l'étape ultime de rendue HTML (twig) n'est pas déclenchée, Drupal maintient une version spécifique de ce rendu sous forme de tableau PHP. Les petits gars d'Happyculture l'expliquent assez bien sur leur blog en Français -> happyculture.coop/blog/drupal-8-render-api. L'avantage de ce système c'est que le contenu peut être intercepté et modifié à chaque étape entre sa création de son rendu.

Des caches comme s'il en pleuvait

Alors là aussi on n'est pas sur un des points les plus simples de Drupal mais une fois qu'on capte le principe c'est merveilleux. C'est propre, customisable et ça fait largement le taf pour des site de petite à moyenne taille. La où un Wordpress sera vite limité pour des mécaniques de caches dynamiques liés aux activités des utilisateurs connectés, Drupal dispose d'un système bien plus fin fonctionnant par contextes ou par tags. Il est aussi important de citer l’intégration de la technique BigPipe imaginée par Facebook.

Intégration de la technique Big Pipe sur Drupal 8.

Les distributions

il y a les profils d'installations officiels (standard, minimal et Umami pour un site de démo) et il y a les autres; des connus comme Lightning ou Commerce et des moins connus les vôtres! 
En effet pour certains usages la création de profils d'installation peut être une mine d'or pour qui sait en tirer partie. Une agence web ou un free-lance aura tout intérêt à développer ses propres profils d'installation pour mettre en place rapidement différents type de site. Par exemple un profil "one page" pour de simples sites événementiels, un profil "blog ou magazine" pour des sites un peu plus complexes et pourquoi pas un profil "boutique" dérivé du profil commerce mais déjà pré-configuré pour les besoins les plus usuels du marché français. Pour plus d'infos et de détails nous vous conseillons cet article bien fait issu du blog de Flocon de toile: www.flocondetoile.fr/blog/creer-un-profil-d-installation-pour-drupal-8.

L'évolutivité

Au fil du temps et des versions, Drupal se bonifie et s'enrichit de nouvelles fonctionnalités. C'est le cas par exemple du système de gestion des médias qui n'était à l'origine de Drupal 8 pas natif mais géré par un module tiers très populaire au sein de la communauté. Ce module fut rapidement intégré dans le cœur Drupal, d'abord sous forme de module expérimental puis sous forme de module core stable depuis la version 8.5 ou 8.4.

Et tant d'autres choses!

Parce qu’après tout ça reste une discussion de comptoir et qu'on a pas que ça à foutre on vous livre en vrac toutes ces petites choses qu'on adore avec Drupal et qui facilitent nos vies:

  • Le super thème Bootstrap 3 qui permet de faire des sous-thème en moins de 2 en exploitant pleinement Bootstrap et Sass.
  • La distribution Lightning qui grâce à composer et drupal console nous permet de monter un site wtf en 10 minutes.
  • La belle gestion native du multilingue
  • La gestion des rôles et des permissions
  • L'approche "full entity" de Drupal 8
  • Le logo Drupal 8 d'une élégance rare

 

À la votre!

Ajouter un commentaire

L'e-mail est obligatoire mais restera privé.