Planète

Par Artusamak
Julien Dubois

Charger vos librairies front via composer

Charger vos librairies front via composer
DuaelFr
lun 04/10/2021 - 15:00

De nombreux modules requièrent des librairies front externes pour fonctionner correctement. Plutôt que les charger manuellement, cet article explique comment les gérer via composer.







Corps

Depuis la sortie de Drupal 8, composer est devenu la façon la plus répandue de gérer les dépendances des projets. Ainsi, nous pouvons charger modules contribués et thèmes de façon unifiée ainsi que, si nécessaire, les librairies PHP dont ils dépendent. Cependant, certains modules ont besoin de librairies venant du monde du front et n'étant pas nativement supportées par composer. Ainsi, pour chacun de ces modules, il est nécessaire d'aller télécharger la librairie manuellement et de l'ajouter dans son dépôt de code. Il faut ensuite suivre régulièrement les mises à jour de toutes les librairies de tous les projets et les télécharger de nouveau en cas d'évolution ou de faille de sécurité.

Ça, c'était avant.

Cela fait bien longtemps maintenant que cette problématique a été résolue par les personnes travaillant sur le front des projets via divers package managers comme npm et bower, dont composer est d'ailleurs inspiré. Mais alors, pourquoi est-ce si compliqué de gérer ces librairies dans Drupal ?

npm, bower et composer ne référencent pas les mêmes types de paquets. En effet, les paquets PHP n'ont pas la même organisation et le même usage que les paquets Javascript. Cependant, même s'il est techniquement possible de déclarer un paquet Javascript dans packagist (la base de données alimentant composer), les auteurs de ces paquets ne le font généralement pas pour ne pas avoir à gérer tous les gestionnaires de paquets du monde et parce que cela n'est généralement pas pertinent pour l'usage que l'on peut faire de leur outil. Les personnes maintenant des outils Javascript se concentrent donc sur npm et bower, les deux plus utilisés.

Bienvenue Asset Packagist

La communauté étant pleine de ressources, le projet Asset Packagist a émergé pour répondre à ce besoin. Son but, mettre à disposition les paquets présents sur npm et bower via composer à moindre effort. Ainsi, il est possible de récupérer ces dépendances et de les maintenir à jour de la même façon que le reste de nos modules.

composer étant configuré pour uniquement chercher ses paquets sur son propre packagist, nous allons devoir tout de même procéder à quelques configurations dans notre projet pour pouvoir utiliser Asset Packagist comme source, suivez le guide !

Configurer le repository

Comme lorsque l'on souhaite pouvoir récupérer les modules et thèmes de Drupal, nous devons déclarer un repository spécifique au sein de notre fichier composer.json. Voilà à quoi ressemble la section repositories de mon fichier :

    "repositories": {
        "drupal": {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        },
        "assets": {
            "type": "composer",
            "url": "https://asset-packagist.org"
        }
    },

Désormais, vous avez la possibilité de récupérer les dépendances front de vos modules via les commandes composer require npm-asset/PAQUET ou composer require bower-asset/PAQUET en cherchant sur le site d'Asset Packagist le nom correspondant.

Cependant, en l'état nos dépendances seront installées dans le dossier /vendor, comme les dépendances PHP, ce qui ne nous arrange pas puisque les modules les chercheront dans le dossier /libraries pour les rendre accessibles aux visiteurs.

Configurer l'emplacement des librairies

Pour faire en sorte que composer place les fichiers à l'endroit voulu, il nous faut exploiter les possibilités offertes par le paquet composer/installers. Si ce dernier n'est pas déjà installé dans votre projet (ce qui est peu probable si vous gérez vos modules via composer), il vous suffit de taper la commande composer require composer/installers pour ajouter la dépendance.

Ensuite, il faut ajouter quelques informations dans la section extra de votre composer.json.

  • L'entrée installer-types permet de déclarer les types de paquets en provenance de Asset Packagist.
  • L'entrée installer-paths permet de déterminer l'endroit où chaque type de paquet sera déposé. Dans le code ci-dessous, les déclarations ont été ajoutées à celles de Drupal.
    "extra": {
        "installer-types": ["bower-asset", "npm-asset"],
        "installer-paths": {
            "web/core": ["type:drupal-core"],
            "web/libraries/{$name}": [
                "type:drupal-library",
                "type:bower-asset",
                "type:npm-asset"
            ],
            "web/modules/contrib/{$name}": ["type:drupal-module"],
            "web/profiles/contrib/{$name}": ["type:drupal-profile"],
            "web/themes/contrib/{$name}": ["type:drupal-theme"],
            "drush/Commands/contrib/{$name}": ["type:drupal-drush"],
            "web/modules/custom/{$name}": ["type:drupal-custom-module"],
            "web/themes/custom/{$name}": ["type:drupal-custom-theme"]
        },
    }

Et voilà, votre projet est prêt à recevoir ces dépendances et à les maintenir à jour suivant le même processus que vos modules et vos thèmes !

Catégories
Drupal
Drupal 10
Drupal 8
Drupal 9
Tags
composer
libraries
Par Christophe MOLLET
Christophe Mollet

Quel CMS choisir entre Wordpress et Drupal ?

Si vous souhaitez créer un site internet, il est important de bien évaluer vos besoins et vos objectifs afin de choisir, par la suite, le CMS le plus adapté à votre projet. Afin de vous aider à y voir plus clair, notre agence web vous présente, dans cet article, les 2 CMS les plus populaires, à savoir : Wordpress et Drupal.

Par Artusamak
Julien Dubois

Avez-vous anticipé la fin de vie de Drupal 7 et 8 ?

Avez-vous anticipé la fin de vie de Drupal 7 et 8 ?
stephanie@happyculture.coop
lun 02/08/2021 - 17:24

Alors que Drupal 8 cèdera sa place à Drupal 9 cette année, Drupal 7 quant à lui reste en sursis jusqu’en novembre 2022.
Alors n’attendez plus, passez à Drupal 9 !




Migrer de Drupal 7 ou 8 à Drupal 9
Corps

Que se passe-t-il ?

Dès 2019, la date de fin de vie de Drupal 7 et Drupal 8 a été annoncée. Ce sera pour le mois de novembre 2021.

La règle dans la communauté Drupal c’est 2 versions majeures maintenues en simultané (Drupal 7 et Drupal 8 à l’époque). L’arrivée de Drupal 9 devait pousser Drupal 7 vers la retraite mais papy fait de la résistance !

En effet, son utilisation importante chez de nombreux utilisateurs finaux, la migration complexe vers Drupal 8 et le COVID ont repoussé son arrêt de carrière de 12 mois, il jouera donc les prolongations jusqu’en novembre 2022

De son côté, Drupal 8 est toujours rangé au placard à la date prévue car c’est sa dépendance à Symfony 3 qui arrive en fin de vie et qui lui fera quitter les projecteurs en novembre 2021.


Drupal release cycle
@hugovk

 

Quels sont les risques ?

Avec le retrait de ces deux versions, votre système de gestion de contenu ne va pas arrêter de fonctionner du jour au lendemain.

Ce que signifie leur fin de vie c’est que les équipes officielles qui s’occupent de maintenir le logiciel ne le feront plus. Il n’y aura donc plus de mises à jour de correctif ou de sécurité. Votre site ne bénéficiera plus de la protection offerte par l’équipe de sécurité de drupal.org. Elle s’assure que tous les modules, thèmes, distributions et le cœur de Drupal sont sécurisés. Qu’aucune faille ne peut être exploitée par des pirates et le cas échéant, produit des patchs de sécurité pour que vous puissiez mettre à jour vos sites en toute sérénité. C’est cette partie là qui s’arrête au mois de novembre 2021 pour Drupal 8.

 

Que dois-je faire ?

Selon vos sites, vous êtes dans l’une des deux situations suivantes :

Mon site est sous Drupal 7

D’ici au mois de novembre 2022, vous devez lancer le chantier de montée de version de votre site. Vers Drupal 9 ou vers un autre CMS, vous devez vous posez la question de l’impact de cette échéance.
À l’instar de Drupal 6, quelques grosses sociétés expertes Drupal ont annoncé qu’elles contribueraient à la maintenance de correctifs de sécurité de Drupal 7. Si une faille de sécurité importante venait à être découverte, ils s’engagent à reverser à la communauté le patch de sécurité aussitôt qu’il sera disponible.
Bien que cela soit une bonne nouvelle, ils ne maintiendront pas tout l’écosystème des modules utilisés par Drupal 7. Vous devez tenir compte de cette échéance pour gérer la montée de version de votre site.

Si votre site n’est plus dynamique, vous pouvez envisager une statification pour ne pas vous engager dans une refonte.

Il vous reste 16 mois pour agir, la durée moyenne d’un projet de refonte est de plusieurs mois. Ne traînez pas, nous pouvons vous aider !

Mon site est sous Drupal 8

Si votre site est sous Drupal 8, l’échéance est dans 4 mois mais, la bonne nouvelle c’est que la route est bien plus droite. En effet, le principal reproche fait à Drupal 6 et 7 était la complexité des montées de versions majeures. Comme nous l’avons indiqué précédemment, passer de Drupal 7 à Drupal 9 est un coût non négligeable. Ce frein a été entendu par la communauté et la gestion des montées de version a été revue pour en tenir compte. Depuis Drupal 8, la montée de version est sans friction car pour peu que vous mainteniez votre site Drupal 8 à jour, le passage à Drupal 9 consiste à simplement retirer le code déprécié entre les deux versions. Ce qui est une quantité bien moindre que précédemment.

Le coût de la montée de version est donc quasiment le même que celui d’une montée intermédiaire. On parle de quelques jours tout au plus contre des semaines voire des mois précédemment (car on en profitait en général pour changer bien d’autres choses par la même occasion).

Votre équipe technique devra donc s’occuper de cela et ne devrait pas avoir de problèmes pour gérer cette montée de version. Les quelques freins qui peuvent exister étant des modules contribués non compatibles avec Drupal 9 mais ils sont minoritaires. 100% du top 200 des modules et 95% du top 1000 est compatible avec Drupal 9.

Vous souhaitez en savoir plus ? Vous souhaitez migrer votre site vers Drupal 9 ?
Contactez-nous !

Catégories
Drupal
Drupal 7
Drupal 8
Drupal 9
Tags
Drupal
Par Christophe MOLLET
Christophe Mollet

Les 10 modules Drupal 9 indispensables

Drupal possède déjà de nombreux modules de base, appelés module du cœur, extrêmement puissants et efficaces pour la construction de votre site web. Étant également un CMS très modulable et pouvant être personnalisé selon les besoins de chaque projet, il est important de connaître certains modules de la communauté, appelés module contrib, indispensables peu importe votre domaine. Un de nos experts Drupal vous présente, dans cet article, son TOP 10 des modules Drupal 9 les plus indispensables.

Par Christophe MOLLET
Christophe Mollet

Les fonctionnalités apportées par Drupal 9.2

Drupal est un CMS qui ne cesse d'évoluer afin de répondre aux besoins du marché. Pour se faire, Drupal met à jour régulièrement ses versions, toujours plus performantes et sécurisantes les unes que les autres. La dernière mise à jour prévue est la sortie de Drupal 9.2 pour ce mois-ci. Notre agence web vous dévoile dans cet article toutes les modifications que pourra apporter cette nouvelle version sur votre site internet.

Par Christophe MOLLET
Christophe Mollet

Quelques sites internet créés sous Drupal

Si vous avez comme projet de créer un site internet pour votre activité, il faut savoir que le choix du CMS a un impact direct sur ce que vous souhaitez faire. En effet, il est important d’avoir à l’esprit que l’on ne choisit pas un CMS par hasard, mais parce qu’il correspond au besoin envisagé. Ici, nous allons vous parler de Drupal, un CMS open-source à la fois puissant et flexible.

Par Christophe MOLLET
Christophe Mollet

Installer Drupal 9 avec Composer

Si vous vous lancez dans la création de site web personnalisé, et souhaitez posséder d'un processus de création le plus professionnel possible, notre agence web vous recommande d'installer Drupal avec Composer. Cela vous permettra entre autres d'avoir le contrôle sur le versionning de la base de données et des extensions contrib de Drupal. Afin de vous accompagner au mieux dans votre projet web, un de nos experts Drupal vous a préparé un tutoriel.

Par Christophe MOLLET
Christophe Mollet

Configuration d'un flux RSS sur Drupal

Un flux RSS regroupe l’ensemble des actualités (articles de blog, informations provenant de différents sites web, …) provenant de différentes sources d’informations sur une seule et même plateforme. Un flux RSS permet ainsi aux internautes de consulter en temps réel les dernières actualités de votre site. ITSS vous explique dans cet article, en quoi cela consiste, et vous propose son tutoriel pour aider les entreprises à mettre en place un flux RSS sur leur propre site internet Drupal.

Par Christophe MOLLET
Christophe Mollet

Synchronisation configuration Drupal

Le système de configuration de Drupal 9 stock l’ensemble des informations du site (blocks, vues, types de champs et de contenus, taxonomie…) sans inclure les données (contenu des blocks, terme de taxonomie, valeur des champs, ...). Dans Drupal 7 le système de configuration était stockée dans la base de données, ce qui rendait difficile le transfert d’une copie du site, en particulier si des modules (extensions) modifiaient la configuration.

Par Christophe MOLLET
Christophe Mollet

Les nouveautés de la version 9.1 de Drupal

Drupal est l’un des meilleurs systèmes de gestion de contenu libre open-source. En effet, ce CMS est notamment connu pour ses fonctionnalités importantes, telles que la fiabilité, la flexibilité, l’évolutivité, ou encore la performance. Lancé sur le marché en 2000, Drupal comprend plusieurs versions à son actif : Drupal 7, 8 et 9.

Par Christophe MOLLET
Christophe Mollet

Choisir son CMS pour un projet web

Lorsque l'on souhaite réaliser un projet web, il n'est pas toujours facile de choisir le CMS le plus adapté à votre besoin. Pour vous aider à y voir plus clair pour votre projet, notre agence web vous explique les technologies web en détails.

Bien que nos gènes viennent et resterons dans le web, la barrière entre les applications mobiles et les sites web est de plus en plus flou. Technologie front, back, CMS, application native, hybride, PWA, on est vite perdu lorsque nous devons choisir une technologie ou la raison pour laquelle nous choisissons cette technologie.

Par Christophe MOLLET
Christophe Mollet

Les nouveautés de la version 9 de Drupal

Construite et basée sur la version 8 de Drupal, la nouvelle version 9 de Drupal a été dévoilé au grand public en juin dernier. Une interface qui garantie une meilleure accessibilité, plus de stabilité et sécurité. Afin de vous aider à faire le bon choix pour votre site internet, nous vous expliquons toutes les nouveautés de cette nouvelle version.

Par Christophe MOLLET
Christophe Mollet

Comment créer un module avec Drupal 8 ?

Un module est un ensemble de fichiers PHP, Javascript et/ou CSS qui étendent les fonctionnalités du site et en ajoutent de nouvelles

Nous allons voir dans cet article comment créer un module avec Drupal 8.

Par Christophe MOLLET
Christophe Mollet

Les fonctionnalités apportées par Drupal 9.2

Drupal est un CMS qui ne cesse d'évoluer afin de répondre aux besoins du marché. Pour se faire, Drupal met à jour régulièrement ses versions, toujours plus performantes et sécurisantes les unes que les autres. La dernière mise à jour prévue est la sortie de Drupal 9.2 pour ce mois-ci. Notre agence web vous dévoile dans cet article toutes les modifications que pourra apporter cette nouvelle version sur votre site internet.

Par FMB
Philippe Mané

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Le projet Musa in situ, mené conjointement par le CIRAD et Bioversity, recueille des données sur les Musacées1 de par le monde, en conditions naturelles ou s'en approchant. L'objectif principal est d'obtenir une image la plus précise possible de la diversité géographique naturelle des Musacées. Il s'appuyait initialement sur un projet sur iNaturalist, mais par la suite il s'est ouvert à d'autres sources de données, notamment le GBIF (Global Biodiversity Information Facility), qui a pour but de mettre à disposition toute l'information connue sur la biodiversité. En particulier, ces données sont accessibles à travers une interface REST.

Le GBIF permet un accès à ces données via une interface web qui utilise en interne cette interface REST. Cependant, dans le cadre du travail effectué pour MGIS, il était souhaitable de pouvoir interroger ces données directement depuis ce site, idéalement au moyen d'une vue, afin de choisir quelles données importer en base, et assurer une cohérence avec ce qui avait déjà été importé, ou ce que l'on s'interdit d'importer.

Il se trouve que le langage R dispose d'une mise en œuvre de référence, rgbif. Ce client constitue une abstraction permettant d'interroger la base du GBIF sans avoir à entrer dans le détail des requêtes à effectuer en service web. Il a été porté de manière plus ou moins exhaustive en Python (pygbif) et Ruby (gbifrb). Il faut désormais compter avec PHP GBIF, développé dans le cadre de ce projet. Notre espoir est que ce projet libre2 puisse être utile à d'autres acteurs souhaitant interagir avec ce catalogue central de la biodiversité mondiale.

L'installer est aussi simple qu'un composer require restelae/php-gbif. Cette bibliothèque requiert la version 7.2 de PHP ou toute version supérieure. Vous trouverez sur sa page d'accueil toutes les informations nécessaires à son utilisation, complétées par une documentation générée automatiquement avec Doxygen.

Nous avons également écrit un module pour Drupal3 s'appuyant sur cette bibliothèque pour permettre d'afficher les occurrences du GBIF avec Views, uniquement en site building, par appels en service web, sans passer par la base locale ! Couplé avec Views Bulk Operations, on peut tout à fait s'en servir pour traiter en local les données du GBIF sélectionnées, par exemple les importer localement avec le module Migrate.

À l'heure actuelle, le projet permet uniquement de récupérer ou de rechercher des occurrences ou des espèces. Nous sommes à la recherche de sponsors et de contributeurs pour mettre en œuvre l'ensemble de l'API du GBIF, et de la sorte faciliter grandement l'accès à l'ensemble des données du GBIF à tous les projets écrits en PHP. N'hésitez pas à nous contacter si cela vous intéresse !


  1. La famille des Musacées regroupe notamment les genres Musa (bananiers) et Ensete↩︎

  2. Sous licence GPLv3. ↩︎

  3. Actuellement Drupal 7, en attendant que MGIS soit porté en Drupal 9. ↩︎

felip
01/06/2021

Par FMB
Philippe Mané

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Le projet Musa in situ, mené conjointement par le CIRAD et Bioversity, recueille des données sur les Musacées1 de par le monde, en conditions naturelles ou s'en approchant. L'objectif principal est d'obtenir une image la plus précise possible de la diversité géographique naturelle des Musacées. Il s'appuyait initialement sur un projet sur iNaturalist, mais par la suite il s'est ouvert à d'autres sources de données, notamment le GBIF (Global Biodiversity Information Facility), qui a pour but de mettre à disposition toute l'information connue sur la biodiversité. En particulier, ces données sont accessibles à travers une interface REST.

Le GBIF permet un accès à ces données via une interface web qui utilise en interne cette interface REST. Cependant, dans le cadre du travail effectué pour MGIS, il était souhaitable de pouvoir interroger ces données directement depuis ce site, idéalement au moyen d'une vue, afin de choisir quelles données importer en base, et assurer une cohérence avec ce qui avait déjà été importé, ou ce que l'on s'interdit d'importer.

Il se trouve que le langage R dispose d'une mise en œuvre de référence, rgbif. Ce client constitue une abstraction permettant d'interroger la base du GBIF sans avoir à entrer dans le détail des requêtes à effectuer en service web. Il a été porté de manière plus ou moins exhaustive en Python (pygbif) et Ruby (gbifrb). Il faut désormais compter avec PHP GBIF, développé dans le cadre de ce projet. Notre espoir est que ce projet libre2 puisse être utile à d'autres acteurs souhaitant interagir avec ce catalogue central de la biodiversité mondiale.

L'installer est aussi simple qu'un composer require restelae/php-gbif. Cette bibliothèque requiert la version 7.2 de PHP ou toute version supérieure. Vous trouverez sur sa page d'accueil toutes les informations nécessaires à son utilisation, complétées par une documentation générée automatiquement avec Doxygen.

Nous avons également écrit un module pour Drupal3 s'appuyant sur cette bibliothèque pour permettre d'afficher les occurrences du GBIF avec Views, uniquement en site building, par appels en service web, sans passer par la base locale ! Couplé avec Views Bulk Operations, on peut tout à fait s'en servir pour traiter en local les données du GBIF sélectionnées, par exemple les importer localement avec le module Migrate.

À l'heure actuelle, le projet permet uniquement de récupérer ou de rechercher des occurrences ou des espèces. Nous sommes à la recherche de sponsors et de contributeurs pour mettre en œuvre l'ensemble de l'API du GBIF, et de la sorte faciliter grandement l'accès à l'ensemble des données du GBIF à tous les projets écrits en PHP. N'hésitez pas à nous contacter si cela vous intéresse !


  1. La famille des Musacées regroupe notamment les genres Musa (bananiers) et Ensete↩︎

  2. Sous licence GPLv3. ↩︎

  3. Actuellement Drupal 7, en attendant que MGIS soit porté en Drupal 9. ↩︎

felip
01/06/2021

Par Christophe MOLLET
Christophe Mollet

Quel site internet pouvons-nous créer sous Drupal ?

Si vous avez comme projet de créer un site internet pour votre activité, il faut savoir que le choix du CMS a un impact direct sur ce que vous souhaitez faire. En effet, il est important d’avoir à l’esprit que l’on ne choisit pas un CMS par hasard, mais parce qu’il correspond au besoin envisagé. Ici, nous allons vous parler de Drupal, un CMS open-source à la fois puissant et flexible.

Pages