Drupal
20/11/2017

Vagabondage de tweets – Octobre 2017 – Drupal, ReaslonML, SMACSS, GraphQL, Devdocs API…

Veille Drupal octobre 2017
Au sommaire de ce mois-ci : Drupal, Portainer, ReaslonML, Elm, SMACSS, GraphQL, Devdocs API, Lando… voici notre sélection des tweets d’octobre 2017 !

Drupal

3 octobre – Ludovic Coullet ‏@lcoullet 
Drupal 8 - Les EntityQuery par l'exemple : http://bit.ly/2Apactj
Si dans Drupal 7 nous avons le module Entity Field Query qui permet de rechercher des entités Drupal (nœuds, utilisateurs, etc.), et bien dans Drupal 8, nous avons Entity Query qui permet d’effectuer des requêtes avancées sur les types d’entités selon leurs propriétés ou leurs champs. Dans Drupal, presque tout est entité ce qui signifie qu’il est possible de faire des requêtes sur un large choix d’éléments : les nœuds, les blocs, les utilisateurs, les menus, les éléments de menus, les entités custom, etc. Ce tutoriel vous permettra de maîtriser la génération de requêtes dans Drupal 8 avec des conditions, des conditions multiples, la condition "Or", les conditions "Or et AND", avec la gestion de la pagination et du nombre de résultats, avec la gestion du tri et le comptage du nombre de résultats.

3 octobre – Bluedrop Agence @bluedrop_drupal
Voici un tutoriel pertinent pour passer du module #FieldCollection à #Paragraphs dans #Drupal8 ! http://bit.ly/2xdDNDi
Si vous passez à Drupal 8 il est temps de changer de module car Field Collection est sur le point de devenir obsolète et est susceptible d’être remplacé par le fameux module Paragraphs de Drupal 8. En effet, Paragraphs apporte quelques avantages supplémentaires par rapport à Field Collection, notamment :

  • Il y a plusieurs champs par bundle de paragraphe ;
  • La possibilité d’utiliser différents bundles de paragraphes dans un champ unique de paragraphe ;
  • La possibilité de jouer sur un affichage selon le paragraphe choisi ;
  • Les bundles sont exportables avec les fonctionnalités ;
  • Le module est plus léger et plus performant que Field Collection ;
  • En se basant sur Entity API, le module Paragraphs est compatible avec les fonctionnalités de traduction.

Pour procéder à la migration, voici un tutoriel explicatif intéressant ! D’ailleurs, nous avons écrit un post qui présente les avantages de Paragraphs par rapport à Field Collection ! 

5 octobre – Ludovic Coullet ‏@lcoullet 
#Drupal 8.4.0 is now available https://buff.ly/2fTszBl  tadaaaa !
La sortie de Drupal 8.4.0 annonce une étape importante dans la stabilité du CMS. Elle ajoute des améliorations incluant d’importants correctifs et annonce la stabilité de plusieurs modules expérimentaux. Jetons un coup d’œil sur les nouveautés et l'enrichissement du Core :

  • Le module Inline Form Errors : pour répondre aux exigences en termes d’accessibilité web, dorénavant le module résume l’ensemble des erreurs de validation en haut du formulaire et signale la nature de l’erreur à côté de l’élément du formulaire. Cela permet aux utilisateurs d’avoir une meilleure visibilité des erreurs qui doivent être corrigées.
  • Le module Datetime Range : ce dernier autorise pour un même champ de saisie de date, la saisie d’une date de début et de fin.
  • Le module Workflow : ce module, comme les autres, est enfin devenu stable. Il permet de gérer le workflow par exemple pour des processus de validation de publications de contenus. Combiné avec le mode Content Moderation, il est possible d’associer des états à des entités.
  • Media API : le core intègre dorénavant le module Media. Ce dernier fournit une API pour les entités multimédias.

…et d’autres. Il est temps de passer à la version majeure !

10 octobre – Christophe Dugué @chdugue
#DrupalCommerce 2.0 - les améliorations résumées ici, en toute partialité :) http://bit.ly/2kDYjMt  - #Drupal
La rentrée a lancé le coup d’envoi de plusieurs nouveautés dont la sortie de Drupal Commerce 2.0, à présent en version stable et qui propose de nouvelles améliorations, dont :

  • Une meilleure intégration des systèmes de paiement : l’intégration des méthodes de paiement a été simplifiée (CB, PayPal, Apple Pay et même les options de paiement manuel comme le transfert d’argent ou le paiement en magasin) ;
  • Une amélioration du support de livraison : Drupal Commerce 2.0 propose une API qui permet de s’intégrer avec n’importe quel fournisseur de transport. Il est possible de définir les tarifs, d’imprimer les étiquettes, de créer des bordereaux d’emballage, etc.
  • La recherche Solr : chaque page de catalogue dans Drupal Commerce 2.0 est un résultat de recherche utilisant la puissante solution Solr. Ces pages de résultats de recherche peuvent être filtrées et affinées à l’aide de n’importe quel paramètre disponible dans le contenu (prix, marque, couleur, taille, forme, etc.).
  • Les flux de paiement personnalisables : les checkouts peuvent être configurés en utilisant simplement une interface drag and drop. Il est possible de créer une variété de flux de paiements qui sont ensuite affectés aux types de commande (digital, abonnement, événement, etc.). Par exemple, si vous vendez des produits physiques vous aurez besoin des détails d’expédition lors de votre commande.
  • Amélioration de la performance : Drupal Commerce 2.0 est basée sur le socle technique Drupal 8. En plus d’utiliser PHP7, multipliant la performance par 2, la distribution utilise également des solutions de cache et le module BigPipe offrant une expérience utilisateur plus fluide.

19 octobre – Christophe Dugué @chdugue
#Drupal découplé : Agréger des requêtes avec le module subrequests... Et améliorer grandement les performances - http://bit.ly/2hh3sp6
Plus on augmente la taille ou la complexité d’un projet Drupal (notamment dans le cas d’un projet de Drupal Headless), plus il est fréquent de créer des liens entre les différents objets manipulés par le CMS. Cela n’est pas sans conséquence, un grand nombre de requêtes est généré entre l’API et l’application. Le module JSON API permet de spécifier dans votre requête un attribut « include » qui récupère les objets liés. Cela évite de faire une requête individuelle par entité. Cependant, cela n’est possible que lors de la récupération des entités et non lors de l’écriture des données et seulement si les entités sont reliées au point d’entrée (par exemple une entité particulière). Avec le module Drupal Subrequests, il est possible d’agréger un ensemble de requêtes et donc d’envoyer plusieurs requêtes JSON en une seule fois, permettant à Drupal de ne démarrer qu’une seule instance pour répondre aux requêtes. Le module peut même agréger une requête dépendante d’une réponse précédente. Si vous souhaitez aller plus loin, ce post vous permettra de comprendre la pertinence de Subrequests pour répondre à des hautes exigences en performance de votre site Drupal découplé. 

Portainer

3 octobre – Christophe Dugué @chdugue
Gérer des containers #Docker avec une interface graphique : #Portainer - http://bit.ly/2zuyUZ8
Portainer est une interface graphique légère et Open Source qui permet de gérer vos conteneurs Docker et vos clusters Swarm. Portainer est conçue pour être aussi simple à déployer qu’à utiliser et se compose d’un seul conteneur pouvant fonctionner sur n’importe quel moteur Docker. Cette interface UI permet d’avoir une vision globale de votre environnement, notamment :

  • Les informations système de base ;
  • Le nombre de conteneurs ;
  • Le nombre d’images ;
  • Le nombre de volumes ;
  • Et enfin le nombre de réseaux.

Si vous avez des conteneurs Docker à gérer, cette solution peut s’avérer utile !

ReasonML 

3 octobre – Christophe Dugué @chdugue
#ReasonML : la tête et les doigts. http://bit.ly/2AoseLh
Facile à prendre en main notamment pour les débutants, JavaScript est le langage le plus utilisé dans le monde du développement web. Pourtant, coder proprement est une autre histoire, principalement en raison des bugs à répétition. Le problème de JavaScript est qu’il est dynamiquement et faiblement typé, ce qui signifie qu’une fonction ne sait pas ce qu’elle prend ou retourne comme type d’arguments et que le programme n’en a aucune idée tant qu’il n’exécute pas la portion de code. Il existe des langages qui sont l’inverse de JavaScript : fortement et statiquement typés comme OCaml. Ce dernier fait partie de la famille des ML et dispose d’un algorithme d’inférences de types qui lui permet de déterminer le type des variables à partir du contexte dans lequel elles sont employées. Cependant, OCaml comme beaucoup de langages fonctionnels est difficile d’accès pour les débutants. En effet, sa syntaxe est laborieuse à comprendre par des développeurs JavaScript, PHP ou Java. Pour cela, le créateur de React a initié le projet ReasonML qui propose une approche fonctionnelle et immutable par défaut, mais qui permet également de choisir d’utiliser des structures mutables ou de l’orienté objet. En somme, Reason : 

  • Est basé sur OCaml ;
  • Propose une syntaxe friendly et accessible pour les débutants ;
  • Dispose d’outils qui le rendent simple à utiliser ;
  • Peut compiler vers JavaScript ;
  • Ne permet pas de mixer les types, il est obligatoire de les convertir.
  • Possède un système de module très puissant. 

A voir !

Elm

26 octobre – Ludovic Coullet ‏@lcoullet
Elm = Javascript Reinvented (Part 1) : http://bit.ly/2yiABaQ
Elm est un framework et un langage de programmation fonctionnel statiquement typé pour le front-end. Il s’inspire du langage de programmation Haskell et propose d’apporter plus de maintenabilité que JavaScript. Par ailleurs, l’architecture d’Elm est similaire à Redux, qui lui-même s’était fortement inspirée d’Elm. Lors de la conception du langage, l’auteur d’Elm a choisi de mettre l’utilisateur au centre de ses choix de conception. Cette initiative réduit les caractéristiques du langage à l’essentiel et le rend facile à apprendre et à prendre en main. Par exemple, les messages d’erreur d’Elm sont agréables et cela vient du système de type statique qui permet au compilateur de connaître et d’énoncer clairement les différences entre les types de valeurs attendues et celles qui sont fournies à nos fonctions. Pour aller plus loin, cet article présente les fonctionnalités d’Elm qui font de ce langage une alternative intéressante à JavaScript.

SMACSS

6 octobre – Christophe Dugué @chdugue
@ryadkarar - Le fameux guide #SMACSS est en ligne et libre d'accès !! - http://smacss.com  - #FrontEnd #CSS
Le CSS n’est pas un langage difficile à appréhender mais il peut devenir un véritable casse tête s’il est mal pensé ou mal organisé. SMACSS (Scalable and Modular Architecture for CSS) est un guide qui permet de structurer et de mieux organiser les feuilles de style CSS grâce à des conseils et des lignes de conduite. Cette méthode permet d’avoir un code plus facile à mettre en place, à maintenir et à faire évoluer. Complet, ce guide aborde les différents aspects du CSS comme :

  • La catégorisation des règles CSS ;
  • Les règles de bases en CSS ;
  • Les règles d’agencement ;
  • Les règles de modules ;
  • Les règles d’état ;
  • Les règles de thèmes ;
  • Les changements d’état ;
  • La profondeur de l’applicabilité ;
  • La performance des sélecteurs ;
  • Le HTML5 et SMACSS ;
  • La conception d’un prototype ;
  • Les préprocesseurs ;
  • L’héritage complexe…

Le guide est enfin en ligne, libre d’accès et disponible en version française ici.

eZ Platform

12 octobre – Christophe Dugué @chdugue
#eZpublish devient #eZplatform... N'est-ce pas le moment de migrer vers #Drupal ? http://bit.ly/2xAJJGJ  - Réfléchissez-y (#Musashi).
Si votre site a été réalisé avec eZ Publish, alors vous avez probablement entendu parler de la fin du support du CMS pour la fin de l’année 2017. ezPublish ne sera plus maintenu, c’est-à-dire qu’il ne recevra plus de mise à jour de sécurité, ou de tout autre mise à jour corrective ou évolutive. En effet, après avoir admis que le code PHP ainsi que le back-office frôlaient l’obsolescence, l’éditeur du CMS eZ System a entrepris un projet de refonte du CMS eZ Publish il y a 4 ans de cela pour donner naissance à un nouveau CMS : eZ Platform. A la différence de ses prédécesseurs, eZ Platform intègre l’utilisation du Framework Symfony 2 et se montre plus puissant pour le développement de solutions sur-mesure performantes. eZ Platform propose entre autres :

  • Un nouveau back-office à base de JavaScript et d’asynchrone ;
  • Un référentiel de contenu intégré avec le robuste moteur de recherche Solr pour une recherche performante de millions d’éléments de contenu.
  • Une nouvelle interface utilisateur conférant une édition fluide sans chargement de page ;
  • Une REST API basée sur les APIs du référentiel de contenus ;
  • Un système de gestion des droits proposant une configuration fine des fonctionnalités et des droits des utilisateurs…

Pourtant l’éditeur a choisi de restreindre le périmètre fonctionnel du nouveau CMS, en proposant des fonctionnalités payantes avec son offre eZ Platform Enterprise Edition, des fonctionnalités qui étaient Open Source sous eZ Publish. Un choix qui laisse perplexe. Quel CMS choisir pour migrer votre site eZ Publish ? Nous vous éclairons sur le sujet dans notre post !

GraphQL

17 octobre – Christophe Dugué @chdugue
#Graphql complément de #Rest pour exposer vos contenus - excellent post de @lcoullet : http://bit.ly/2xAJJGJ  - #Drupal
Le standard REST est devenu une norme dans l’élaboration d’APIs. Si REST est facile à entreprendre, son architecture n’est pas adaptée à tous les usages et présente quelques inconvénients dont les principaux suivants : 

  • REST permet de requêter tout ou rien, si vous requêtez un objet vous aurez tous les champs de l’objet ou rien ;
  • REST oblige souvent à multiplier plusieurs appels pour obtenir les données et ne facilite pas les relations entre objets ;
  • REST est statique c’est à dire que la réponse obtenue a été définie par le développeur de l’application…

GraphQL a pour objectif d’apporter une solution à certaines situations contraignantes. Initialement développé par Facebook, GraphQL est un langage de requête offrant une meilleure séparation des responsabilités entre les logiques d’affichages et les logiques métiers. Ce langage permet entre autres :

  • De n’obtenir que les informations demandées par la requête ;
  • De faire des requêtes imbriquées dans d’autres requêtes ;
  • De faire un typage fort des données là où une API REST n’offre aucune garantie. Il est dorénavant possible de savoir avec exactitude que tel paramètre devra être un entier et non un booléen ;
  • D’avoir une documentation automatique qui reflète la structure même des données qu’il est possible d’obtenir.
  • Etc.

Dans ce post, nous vous présentons GraphQL et ses avantages comme solution complémentaire et intéressante à REST pour exposer vos contenus dans Drupal.

Devdocs.io

26 octobre – Christophe Dugué @chdugue
Magnifique #Documentation libre & rapide pour les développeurs ! https://devdocs.io  - #HTML #CSS #Javascript #PHP #Ruby #Python #Go
Devdocs.io est une plateforme Open Source et gratuite pour les développeurs, répertoriant un large choix de documentation : CSS, DOM, DOM Events, HTML, http, JavaScript… mais également une liste non exhaustive de solutions de développement comme Angular, Backbone, Docker, Django, Elixir, Phalcon, Perl, Python, React, Redis, Ruby, Vue.JS, et bien sûr Drupal ! En plus de proposer une documentation riche, devdocs.io permet de :

  • Personnaliser l’interface grâce à la définition des préférences ;
  • De bénéficier d’un moteur de recherche efficace, par exemple quand vous cherchez « bgcp », le moteur affichera « background-clip ».
  • Devdocs.io fonctionne également en mode hors ligne et peut être installé sur Chrome.

Une plateforme de documentation qui en aidera plus d’un !

Lando

27 octobre – Bluedrop Agence web @bluedrop_drupal 
Découvrez #Lando, une plateforme de développement local #OpenSource, basé sur la technologie des conteneurs #Docker http://bit.ly/2yOcBjl
Lando est une plateforme de développement Open Source permettant de disposer d’un environnement de développement local basé sur la technologie des conteneurs Docker. Conçu pour fonctionner avec la plupart des principaux langages frameworks, Lando offre aux développeurs un moyen facile de spécifier des besoins simples ou plus complexes d’un projet web. Ainsi avec Lando, vous pouvez :

  • Imiter facilement un environnement local de production ;
  • Standardiser les environnements de développement et les outils des développeurs sur OSX, Windows et Linux ;
  • Stocker tout le précédent dans un fichier de configuration contrôlé .lando.yml ;
  • Personnaliser facilement et étendre les outils de votre environnement.

Pour aller plus loin, nous vous invitons à consulter le site https://docs.devwithlando.io, qui fournit une documentation intéressante sur les frameworks Backdrop, Drupal, Joomla, Laravel, WordPress, etc.

Veille synthétisée par @Myriam à partir des comptes twitter de l'équipe.