Retour sur le Drupalcamp – jour 2
12 mars 2019
Comme la première journée du Drupalcamp, nous avons assisté à la conférence d’ouverture. Durant cette keynote animée par Simon Georges, expert Drupal, l’association Drupal France et Francophonies (DFF) a été présentée, dont Simon est le président.
La DFF a été créée en 2009. Il s’agit de la représentation en France de la communauté qui développe le CMS Drupal. L’association s’occupe principalement de la traduction française de Drupal. Elle a aussi pour mission de faire vivre le CMS en France ainsi que la gestion du site communautaire drupal.fr. Simon nous a aussi fait part de leur envie et leur motivation à organiser plus régulièrement et partout en France des événements comme le Drupalcamp, ainsi que des meetups.
L’implémentation du DIC dans Drupal 8
Nous avons poursuivi cette matinée avec une conférence axée technique. Celle-ci était sur l’implémentation du container d’injections de dépendances (le DIC) dans Drupal 8. Le DIC, ou Dependency Injection Container, est un objet qui comprend comment instancier et comment configurer les objets. Pour cela, il utilise les “Definitions”, un objet venu tout droit de Symfony. Cette conférence nous a permis d’approfondir nos connaissances sur les différents concepts du DIC, ainsi que de comprendre comment les dépendances fonctionnent dans Drupal 8 et quel en est le cheminement.
La mise à jour des modèles de données en Drupal 8
La conférence qui a suivi concernait la mise à jour des modèles de données en Drupal 8. Nous avons pu voir plus en détails les différentes mises à jour possibles ainsi que comment les exécuter. La première mise à jour présentée est l’ajout/modification d’un champ à notre entité. Pour l’effectuer nous devons d’abord utiliser le hook hook_update_N pour mettre à jour notre modèle de données. Ensuite, nous devons mettre à jour le schéma pour les prochaines installations avec le hook_shema().
Nous avons aussi vu comment mettre à jour la configuration d’un module vierge qui ne possédait pas de schéma de configuration ainsi qu’aucun répertoire config/install. Pour répondre à cette demande, il est nécessaire de créer les fichiers .yml de configuration et d’utiliser le hook hook_update_N. Suite à cette présentation, de nombreux échanges intéressants ont eu lieu sur la façon d’exécuter les différents types de mises à jours ainsi que sur la méthode de mise à jour des contenus après un export de configuration. Cette conférence nous a donc permis d’avoir une vision différente sur le sujet.
Développer en Drupal : back to basics
Pour reprendre la journée, Kevin Gautreau, développeur Drupal, nous a parlé des bases du développement dans Drupal. Une conférence orientée débutant dont nous n’étions pas la cible principale. Malgré tout, celle-ci nous a permis de nous rappeler les principes fondamentaux du développement avec ce CMS. La présentation de certains modules utiles comme “Module filter” fut très intéressante Elle nous a permis d’agrandir notre panel d’extensions à installer sur nos projets tel que “Admin Toolbar” pour un menu administrateur optimisé ou même “reCaptcha” qui protège les sites contre le spam.
Comment solutionner les fails de sécurité d’un site en Drupal ?
Nous avons enchaîné avec un retour d’expérience d’une entreprise anonyme sur l’audit de sécurité de son site en Drupal, animé par un développeur au profil full stack. Lors de cet audit, une faille de sécurité concernant l’énumération des comptes utilisateurs a été identifiée : si les URLs des utilisateurs ne sont pas retravaillés, il est possible de savoir si un compte existe ou non, ce qui peut entraîner des attaques force brute. Pour répondre à cette faille, il existe le module Rename Admin Path ainsi que Username Enumeration Prevention. Il a aussi été évoqué les multiples failles liées au module “CKEditor”. La seule solution proposée est la mise à jour constante du module. Cette conférence fut importante et très formatrice, à la fois piqûre de rappel et montée en compétence sur le sujet à travers l’expérience du conférencier.
Rappel de bonnes pratiques pour les développeurs Drupal
Pour terminer, nous avons assisté à une conférence sur les bonnes pratiques de développement pour des projets Drupal 8. Nous avons pu discuter des bons comportements à adopter lors de l’installation de modules contrib et lors du développement de modules custom. Par exemple, il est totalement déconseillé, même interdit, de modifier les modules contrib ainsi que le core de Drupal. Non seulement pour une question de bonne pratique, mais aussi pour des questions de sécurité et de maintenance du site. Lors de la création ou installation d’un module, il y a une certaine arborescence à respecter. Les modules contrib et custom doivent être séparés dans deux dossiers distincts.
Nous avons pu échanger sur des sujets comme le développement des templates twig, les entités, ou la gestion des caches. Symfony étant implanté dans Drupal, il est aussi nécessaire de suivre ces bonnes pratiques, ainsi que les normes PSR. Après cette implémentation, il est important d’éviter l’utilisation des hooks lorsque cela est possible en passant par les événements Symfony. Lors du développement d’un site Drupal, tout doit pouvoir être automatisé, de sorte qu’aucune action manuelle ne doit être faite sur les autres environnements. Pour cela, plusieurs solutions existent, comme scripter les procédures ou même créer des commandes drush/drupal-console.
Toutes les bonnes pratiques abordées durant cette conférence permettent de développer un site Drupal homogène, de rendre plus facile la reprise du projet par d’autres développeurs ainsi que sa maintenabilité. Bien entendu, cela entraîne aussi une meilleure sécurité du projet ainsi que de meilleures performances.
Rendez-vous l’année prochaine 😉
Cette seconde journée du Drupalcamp nous a permis de confronter et partager notre avis technique avec les différents développeurs de la communauté Drupal. Il est toujours très intéressant de participer à ce type de conférence. Cela permet à nous développeurs de nous remettre en question sur nos choix techniques. et, par conséquent, de nous améliorer.
Nous avons hâte de revenir l’année prochaine pour un prochain Drupalcamp ! Merci à toute l’équipe organisatrice.
Développeuse Web spécialisée dans la techno Drupal