Image de couverture de l'article Retour d'expérience : un développeur Symfony sur Drupal 8
Retour aux articles

L'agence

WanadevStudio

Retour d'expérience : un développeur Symfony sur Drupal 8

Pour les développeurs Symfony qui s’intéressent au framework, Drupal 8 est une bonne alternative. Il est basé sur le framework et semble être facile d'accès pour des développeurs Symfony comme nous. Modeste retour d'expérience.

Tout d'abord, j'aimerais revenir sur un point important. Drupal 8 est avant tout un CMS et pas un framework PHP. Il n'y a donc aucune comparaison à faire avec Symfony ! D'autant plus que Drupal 8 contient, lui même, intrinsèquement, des modules entiers de Symfony.

Cette différence peut être détectée facilement. Par exemple, pour créer un thème (Un thème Drupal contrairement à ce que vous pouvez penser n'est pas juste une feuille de style mais aussi le style d'affichage des différents blocs) : dans 70 % du temps, des simples configurations dans le backoffice peuvent faire l'affaire tandis que les 30 derniers % sont des overriding de blocs créés précédemment.

Depuis cette version 8 de Drupal, les développeurs ont voulu embarquer directement tous les modules importants dans Drupal.

Le CMS : une installation rapide

@ Pour installer Drupal 8 rien de plus simple, rendez-vous sur le site web officiel et téléchargez la dernière version officielle compressée. Décompressez l'archive, configurez votre serveur web et host si besoin et votre projet est fin prêt à être utilisé. L'installation s'effectue ensuite directement depuis l'interface web de Drupal lors de votre premier accès au site web.

L'arborescence est assez simple à comprendre :

  • core/ : Fichier sources de Drupal ;
  • modules/ : Ici s'installent les modules tierces et vos modules personnalisés ;
  • sites/ : Ici se trouvent les configurations du site web (Activation des logs, du cache...) ;
  • themes/ : Ici s'installent les différents thèmes graphiques. Vous pouvez aussi créer votre propre thème ;
  • vendor/ : Toutes les bibliothèques utilisées par Drupal 8 (Dont Symfony et ses dépendances se trouvent ici) ;

@ Vous pouvez installer Drush qui s'avère être l'équivalent de la console de Symfony avec des fonctionnalités supplémentaires. Avec Drush vous pouvez créer des entités (type de contenu), vider le cache ou bien installer des modules.

Dans notre cas, j'ai eu besoin de créer un thème ainsi qu'un petit module avec pour objectif de s'occuper de deux fonctions spécifiques.

Création d'un thème avec Drupal 8

La création d'un thème pour un débutant dans Drupal 8 n'est pas chose facile. J'ai mis quelques temps avant de réussir a obtenir le résultat voulu.

La cause est assez simple, la documentation officielle n'est, je trouve, pas facile d'accès... Il faut chercher longtemps pour trouver ce dont on à besoin...

Même après avoir trouvé quelques infos, d'autres articles d'utilisateurs m'ont été indispensables pour créer mon thème. Cet article pourra vous aider pour la création de thème Drupal 8.

Après avoir activé le mode debug dans le backend Drupal, il est possible de débuguer dans Twig. Oui ! Drupal 8 utilise Twig comme moteur de templating, toi qui es développeur Symfony, je sais que ça te plait ;-) !

Gif

Création d'un module avec Drupal 8

Au moment ou vous avez besoin d'afficher autre chose d'un peu plus complexe qu'une simple liste de données, par exemple un formulaire avec un workflow spécifique, il faudra créer votre propre module.

Contrairement à la création d'un thème, pour un développeur Symfony, la réalisation d'un module est ultra simple et rapide. Un développeur Symfony se sentira rapidement dans son élément.

@ Le découpage des fichiers ressemble étrangement à Symfony qui est la base de Drupal depuis cette version 8, rappelons-le.

Vous pourrez rapidement afficher une vue spécifique. Si vous êtes familier avec Symfony, l'utilisation de la request ainsi que de la response ne devraient pas vous poser de problèmes.

^ Un petit changement est à relever par rapport au routing par annotations, les routes se déclarent dans le fichier routing.yml. Il me semble que Drupal ne laisse pas le choix quant à la forme du routing.

En conclusion

Je pense que Drupal 8 est un bon CMS qui peut répondre a un grand nombre de besoins grâce au système de modules qui est très simple, si vous êtes déjà à l'aise avec Symfony.

J'émets une certaine réserve sur le développement de thèmes qui semble beaucoup trop compliquée à appréhender pour des nouveaux venus dans le monde de Drupal.

Malgré un ressenti final assez positif, je regrette que la documentation soit aussi inaccessible (selon moi).

D'après certains retours d'autres utilisateurs, l'utilisation de Drupal 8 en production n'est pas (encore?) conseillée, je n'ai pas vu les raisons de ces réserves lors de ma propre utilisation : tout à été réalisable et le résultat est 100 % fonctionnel.

Je serai ravi de prolonger cet échange en commentaire : je maîtrise Symfony, pas encore Drupal ;-) !

Photo de Corentin Baur auteur de l'article

Corentin Baur

Commentaires

Photo de Alex joresse auteur du commentaire

Alex joresse

Il y a 7 ans

Merci pour cette explication

En effet, je suis moi même développeur d'application avec symfony 2 et je suis présentement entrain de prendre la main avec  Drupal 8 qui intégré les composants de Symfony 2.

Ainsi dit, je suis face à un programme. j'aimerais intégrer mon application symfony 2 dans Drupal 8 et je ne sais comment m'y procéder. Bréf, qu'en étant dans l'application Drupal, on a la page de l'application Symfony2 qui apparait