logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Menu

Lors du développement de modules personnalisés, plusieurs scénarios exigent que le développeur ajoute un fichier composer.json à son module. Certains de ces scénarios dépendent du fait que le module personnalisé est destiné à être partagé avec la communauté en tant que projet sur drupal.org.

Si le développeur du module souhaite utiliser une bibliothèque PHP hébergée sur packagist.org, il doit ajouter un fichier composer.json à son projet.

Si le module est un module contribué sur drupal.org, a des dépendances envers d'autres modules et souhaite tester les modifications de ces dépendances en utilisant DrupalCI dans le cadre du développement, il doit disposer d’un composer.json exprimant ces dépendances Drupal (DrupalCI ne peut détecter les modifications des dépendances que dans les patches au sein du composer.json, et non dans les fichiers .info ou .info.yml).

Si le développeur du module veut utiliser des contraintes plus expressives fournies par composer.json, comme les opérateurs d'insertion ou tilde (~), elles ne sont possibles que dans composer.json. (Même si Drupal lui-même ne sera pas lié par ces contraintes, elles seront respectées uniquement lors de la construction, si l’utilisateur final utilise Composer pour construire son site.)

Si le module n’a aucune dépendance ou si les dépendances sont exclusivement d’autres modules Drupal, alors composer.json n’est pas nécessaire. Toutefois, avoir un composer.json n’a pas d’impact négatif.

Que le développeur ait un fichier composer.json ou non, les dépendances du module Drupal doivent toujours être exprimées dans leurs fichiers .info.yml pour que Drupal puisse garantir que les bons modules sont activés.

Définir votre module comme un paquet PHP

La communauté PHP plus large utilise Composer pour la gestion des paquets, et Drupal en fait de même. Par exemple, le projet Drupal dépend du paquet « drupal/core ». Le type de paquet « drupal/core » est défini comme « drupal-core », ainsi Composer sait comment le gérer. La bibliothèque composer/installers définit plusieurs types Drupal :

  • drupal-module
  • drupal-theme
  • drupal-library
  • drupal-profile
  • drupal-drush

Voici un exemple complet de la manière dont le projet mobile_detect utilise composer.json pour dépendre du projet externe mobiledetect/mobiledetectlib :

{
  "name": "drupal/mobile_detect",
  "description": "Mobile_Detect est une classe PHP légère pour détecter les appareils mobiles.",
  "type": "drupal-module",
  "homepage": "https://drupal.org/project/mobile_detect",
  "authors": [
    {
      "name": "Matthew Donadio (mpdonadio)",
      "homepage": "https://www.drupal.org/u/mpdonadio",
      "role": "Maintainer"
    },
    {
      "name": "Darryl Norris (darol100)",
      "email": "admin@darrylnorris.com",
      "homepage": "https://www.drupal.org/u/darol100",
      "role": "Co-maintainer"
    }
  ],
  "support": {
    "issues": "https://drupal.org/project/issues/mobile_detect",
    "irc": "irc://irc.freenode.org/drupal-contribute",
    "source": "https://cgit.drupalcode.org/mobile_detect"
  },
  "license": "GPL-2.0-or-later",
  "minimum-stability": "dev",
  "require": {
    "mobiledetect/mobiledetectlib": "~2.8"
  }
}

Pour nommer votre paquet, vous devez suivre les conventions de nommage Drupal Composer.

Définition des dépendances dans composer.json

Vous pouvez, si vous le souhaitez, définir des dépendances externes pour votre module dans composer.json. Le noyau Drupal ne détectera ni ne gérera automatiquement ces dépendances. Pour utiliser les dépendances définies dans le fichier composer.json du projet, vous devez adopter l’une des stratégies de maintenance suivantes :

 

Pour plus d’informations sur Composer en tant que gestionnaire de dépendances pour Drupal, consultez la comparaison entre Composer et Drush Make comme gestionnaires de dépendances.

Ajout de dépendances envers d’autres modules Drupal

Par défaut, Composer ne regarde que les paquets publiés sur Packagist lorsqu’il résout ses dépendances. La plupart des modules Drupal ne sont pas publiés là, car Drupal dispose de son propre dépôt. Pour cette raison, vous pouvez obtenir des messages d’erreur tels que :

Le paquet demandé drupal/module est introuvable dans aucune version, il y a peut-être une faute de frappe dans le nom du paquet.

Vous pouvez indiquer à Composer de rechercher les modules Drupal dans le dépôt packages.drupal.org en exécutant la commande suivante :

$ composer config repositories.drupal composer https://packages.drupal.org/8

Cette commande ajoutera la section suivante à votre fichier composer.json :

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

Compatibilité avec Drupal 9

Avoir un fichier composer.json n’est pas obligatoire pour être compatible avec Drupal 9. Drupal 9 est compatible avec un fichier info.yml. Si votre projet possède un fichier composer.json, la présence d’une compatibilité avec une version de drupal/core n’est pas non plus obligatoire pour Drupal 9. Cependant, si vous avez une exigence de version drupal/core dans votre section require, elle doit être compatible avec Drupal 9.