Blog

To Twig or not to Twig ? That is Drupal 8

Avec le remplacement du vénérable PHPTemplate par Twig comme moteur de template pour Drupal 8, la conception des pages et de leurs agencements a pris une nouvelle dimension. Autant sur Drupal 7 des solutions comme Panels ou Display suite étaient privilégiées, car travailler en profondeur dans des templates mixant deux languages (PHP et HTML), dont le premier est particulièrement verbeux, pouvait très vite devenir illisible et inmaintenable, autant l'arrivée de Twig avec Drupal 8 peut changer radicalement cette perspective. Quels sont les avantages de chacune des solutions à notre disposition ? Que faut-il privilégier ? Essayons de dégager quelques éléments de réflexion.

Une application métier avec Drupal ?

Ce billet est une restranscription synthétique de la conférence Retour d'expérience : une application métier avec Drupal donnée au meetup Drupal Lyon le 7 avril 2016.

Drupal est particulièrement reconnu en tant que Gestionnaire de contenus (CMS) et plateforme de développement (CMF). Sa vocation principale est de propulser des sites Internet. Mais Drupal peut-il être utilisé comme support pour développer une application métier ?

Quelques modules Drupal 8 à (re)découvrir

Bien que Drupal 8 soit encore très jeune, 4 mois après la publication de sa première version stable, les modules Drupal 8 deviennent de plus en plus nombreux et le rythme semble encore s'accélérer.  Sans doute grâce à une architecture plus robuste, un investissement conséquent de la communauté Drupal, et une adoption de Drupal 8 beaucoup plus rapide du fait d'un coeur plus complet. Les modules à installer dès une installation fraiche de Drupal 8 deviennent de ce fait moins nombreux. Découvrons quelque uns de ces modules qui peuvent soit enrichir rapidement votre couverture fonctionnelle, soit vous faciliter l'administration de votre site Drupal 8, ou encore qui sont tout simplement indispensables.

Gérer des librairies externes dynamiquement avec Drupal 8

Drupal 8 a revu en profondeur la gestion des librairies et nous permet de gérer très finement les ressources à charger sur les différentes pages d'un site (cf. La gestion des libraries avec Drupal 8). Néanmoins, si nous souhaitons pouvoir gérer une librairie tierce dont nous ne connaissons pas à posteriori l'emplacement, il nous est difficile de pouvoir la déclarer statiquement. Pour gérer ces différents cas de figure, il va falloir gérer dynamiquement cette librairie. Découvrons comment simplement y parvenir avec le module Libraries API.

Une feuille de route pour Drupal 8. Et après ?

Depuis la sortie de la première version stable de Drupal 8, Drupal utilise désormais un système de gestion sémantique des versions. La mise en place d'un tel système de gestion des versions s'est accompagnée d'une définition d'une nouvelle politique de mise à jour, nous permettant de disposer d'une vision à long terme des différentes versions à venir du coeur de Drupal. Découvrons en détail le fonctionnement de ce système, et la feuille de route sous-jacente de Drupal pour les années à venir.

Drupal  8 : l'envoi de mails sous toutes les coutures

Par défaut, tous les mails envoyés par Drupal 8 le sont en texte brut. Pour envoyer des mails en HTML, que ce soit pour des newsletters, ou encore tout simplement pour les différentes notifications afin de les enrichir quelque peu, il est nécessaire de modifier le système d'envoi par défaut des courriers électroniques, ou encore d'en utiliser un autre. Faisons un tour d'horizon du système d'envoi des courriers électroniques de Drupal 8. Cela est utile à plus d'un titre. Bien sûr si nous avons besoin de réaliser un envoi programmatique, mais aussi pour mieux comprendre le mécanisme général et donc le fonctionnement des différents modules disponibles pour réaliser cette tache.

Maîtriser les entêtes de Drupal 8 et son SEO

Après avoir mis en ligne votre site Drupal 8, vous pourriez constater dans les journaux d'accès à votre site de nombreuses tentatives d'accès aux formulaires d'édition, d'ajout ou encore de suppression de vos contenus, qui échouent bien entendu sur un accès refusé. De belles erreurs 403. Que diable ? Etes-vous la cible d'une attaque ciblée ? Ou bien tout simplement, les moteurs de recherche cherchent-ils à accéder à ces pages généralement interdites aux visiteurs anonymes ? Découvrons le pourquoi du comment, et quelques solutions pour y remédier.

Drupal 8 à votre service !

A l'instar des Plugins, Drupal 8 a introduit un nouveau concept, repris de Symfony2, dans son API : les Services. Ces derniers permettent de mettre à disposition des fonctionnalités assurant une et seule tache, comme par exemple envoyer un courrier électronique ou encore construire le fil d'ariane. La différence majeure des Services comparés aux Plugins est que les services ne disposent pas généralement (ou tout du moins directement) d'une interface graphique de configuration. Pour reprendre la définition concise : un service est un objet PHP, conçu dans le but d'atteindre un objectif spécifique, qui effectue une sorte de tâche globale. Découvrons ce nouveau système des services.

Réaliser des tris sur des vues indexées de Drupal Search API

J'ai été confronté récemment à un bug pour le moins atypique. J'obtenais des contenus dupliqués et/ou manquants sur différentes paginations d'une même vue basée sur Search API. Un bug présent sur le site de production, sur le site de preprod mais différement, et quasi-absent de l'instance de développement. Et le tout apparaissant de façon aléatoire. Après avoir chercher sans relâche sur les termes "drupal search api duplicate sorting" ou "drupal search api duplicate pagination" ou toutes les déclinaisons possibles, je souhaite partager le résultat d'un debug bien corsé.