Partager cet article :

Blog
Aug 07, 20244 min read

Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

Nikolay Tsekov

Chef de l'exploitation

Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

Qu'est-ce que les composants à répertoire unique ?

Les composants à répertoire unique dans Drupal sont un moyen d'encapsuler tous les fichiers nécessaires à un composant dans un seul répertoire. Cela comprend les modèles, les styles, les fichiers JS et les fichiers de configuration du composant. En organisant les composants de cette manière, les développeurs peuvent les gérer, les réutiliser et les maintenir plus efficacement.

Avantages des composants de répertoire individuels

Modularité et réutilisabilité

  • Les CDS favorisent une architecture modulaire où les composants peuvent être facilement réutilisés dans différentes parties du site, réduisant ainsi la redondance et la maintenance.

Maintenabilité améliorée

  • Tous les fichiers liés aux composants étant regroupés dans un seul répertoire, ils sont plus faciles à trouver et à mettre à jour, ce qui améliore la maintenabilité.

Flux de développement rationalisé

  • Les CDS simplifient le flux de développement en réduisant l'éparpillement des fichiers dans différents répertoires. Cette organisation correspond bien aux pratiques modernes de développement frontal.

Consistance

  • En encapsulant les styles, les scripts et les modèles ensemble, les développeurs peuvent assurer une mise en œuvre cohérente des composants sur l'ensemble du site.

Implémentation des composants à répertoire unique dans Drupal

Chaque composant a besoin d'un répertoire unique pour ses actifs. Ce répertoire doit se trouver dans un sous-répertoire composants/ du répertoire de votre thème ou module (afin que Drupal puisse le trouver). Un fichier {NAME}.component.yml contenant des métadonnées sur le composant. La création d'un schéma dans votre {NAME}.component.yml est obligatoire pour les modules, mais facultative pour les thèmes. Cependant, elle est fortement recommandée.

Choisissez un nom pour votre composant. Nous utiliserons button pour notre exemple. Il doit être unique au sein du thème. Les composants sont nommés, donc plusieurs thèmes différents peuvent déclarer un composant button.

button.component.yml

$schema : https://git.drupalcode.org/project/drupal/-/raw/10.1.x/core/modules/sdc/src/metadata.schema.json
name : Appel à l'action
description : Bouton d'appel à l'action
props :
  type : objet
  required :
    - text
  propriétés :
    text :
      type : string
      title : Bouton de texte
    modifiers :
      type : array
      items :
        type : string
      title : Class names

Nous devons ensuite définir la structure HTML de votre composant dans le fichier de template Twig.

button.twig


  {{ texte }}

Appliquons quelques feuilles de style CSS à ce bouton pour lui donner une apparence plus attrayante. Tout ce que vous avez à faire est de créer un fichier CSS dans le répertoire du composant en y incluant le nom de votre composant.

button.css

.btn {
  background-color : #007bff ;
  color : white ;
  padding : 10px 20px ;
  bordure : aucune ;
  border-radius : 4px ;
  curseur : pointer ;
  &.primary {
    background-color : #0056b3 ;
  }
  &.secondary {
    background-color : #6c757d ;
  }
}

Nous avons la structure de fichier suivante pour le nouveau composant button dans notre thème :

Image
button component

Pour utiliser un composant, nous aurons besoin de connaître l'ID du composant. Il s'agit du nom de machine du module ou du thème qui fournit le composant, plus le nom du composant lui-même, séparés par deux points. Exemples:

{module}:{composant} 
some_custom_module:button : où some_custom_module est le nom du module, et button est le nom du composant
olivero:teaser : où olivero est le nom du thème, et teaser est le nom du composant

Dans notre cas, nous allons utiliser le composant directement dans le template Twig et utiliser le mot-clé {% include %}. Modifiez le fichier node.html.twig et ajoutez simplement le code suivant en bas:

 {% include 'theme_name:button' with { text : 'Click Me', modifiers : ['primary'] } only %}

Cela inclura notre composant bouton sur la page du nœud. Voici le résultat.

Image
example button component

 

En savoir plus sur les autres nouveautés de Drupal 11 ici.

Conclusion

L'introduction des composants à répertoire unique dans Drupal Core marque une étape importante vers la modernisation du flux de développement frontal dans Drupal. En regroupant tous les fichiers liés aux composants dans un seul répertoire, les développeurs peuvent améliorer la modularité, la maintenabilité et la cohérence. L'utilisation des SDC permet non seulement de rationaliser le processus de développement, mais aussi d'aligner Drupal sur les pratiques modernes de développement web, ce qui en fait un CMS plus puissant et plus convivial.

A mesure que Drupal continue d'évoluer, des fonctionnalités telles que les SDC joueront sans aucun doute un rôle crucial dans l'amélioration de l'expérience des développeurs et de la qualité globale des sites web Drupal. Notre agence Drupal est là pour vous aider à plonger, à explorer les Single Directory Components et à commencer à construire des sites Drupal plus modulaires et plus faciles à maintenir dès aujourd'hui !

S'ABONNER À NOTRE NEWSLETTER

Partager cet article :

S'ABONNER À NOTRE NEWSLETTER

Articles de blog connexes

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Blog

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Drupal 11 est sorti ! Dans cet article, découvrez ses fonctionnalités et améliorations passionnantes. Mettez-le à jour dès maintenant pour redéfinir votre stratégie numérique avec l'aide des experts de Bulcode.

    Écrit par Svetoslava Angelova
    Aug 05, 20249 min read
    Les sites web des aéroports de Varna et Burgas utilisent des composants React dans Drupal

    Blog

    Les sites web des aéroports de Varna et Burgas utilisent des composants React dans Drupal

    Drupal est un système modulaire dont les fonctions peuvent être adaptées à de nombreux besoins différents, ce qui est particulièrement important pour les projets d'administration publique.

    Écrit par Mihail Shahov
    Aug 08, 20234 min read
    Drupal sans tête avec Next.js - un exemple simple à suivre

    Blog

    Drupal sans tête avec Next.js - un exemple simple à suivre

    La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless. La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless.

    Écrit par Mihail Shahov
    Aug 07, 20238 min read
    Optimisez votre site Drupal : Exploiter le potentiel de Drupal 10

    Blog

    Optimisez votre site Drupal : Exploiter le potentiel de Drupal 10

    Libérez tout le potentiel de votre site web ! Découvrez les fonctionnalités de Drupal 10 qui changent la donne, des designs époustouflants à la création de contenu en toute transparence. Améliorez votre développement web et captivez votre public - il est temps de migrer et de prospérer !

    Écrit par Svetoslava Angelova
    Oct 24, 20234 min read
    10 tactiques de référencement éprouvées pour améliorer la visibilité de votre site Drupal

    Blog

    10 tactiques de référencement éprouvées pour améliorer la visibilité de votre site Drupal

    Optimisez votre site Drupal : Tactiques de référencement éprouvées pour le succès en ligne ! Des temps de chargement rapides comme l'éclair au contenu captivant, découvrez les secrets pour dominer les classements de recherche et gagner avec votre site Drupal.

    Écrit par Svetoslava Angelova
    Nov 03, 202312 min read
     Explorer la communauté Drupal : Ressources, assistance et documentation

    Blog

    Explorer la communauté Drupal : Ressources, assistance et documentation

    Découvrez la dynamique communauté Drupal et exploitez le potentiel de ce puissant système de gestion de contenu (CMS) ! Explorez des ressources inestimables, des forums d'assistance, des modules et une documentation complète. Rejoignez un réseau mondial de passionnés du web et embarquez pour un voyage de développement web et d'innovation.

    Écrit par Svetoslava Angelova
    Nov 08, 20235 min read
    Révéler la puissance de Drupal : Votre guide complet de la réussite numérique

    Blog

    Révéler la puissance de Drupal : Votre guide complet de la réussite numérique

    Découvrez la puissance de Drupal, un système de gestion de contenu open-source qui transcende la création de sites web conventionnels. Avec une flexibilité, une évolutivité et une richesse de fonctionnalités inégalées, Drupal s'adapte à tous les besoins numériques, des blogs personnels aux sites de commerce électronique complexes.

    Écrit par Svetoslava Angelova
    Oct 09, 20234 min read
    Migration vers Drupal 7 : Naviguer sur la voie d'un site web prêt pour l'avenir

    Blog

    Migration vers Drupal 7 : Naviguer sur la voie d'un site web prêt pour l'avenir

    Votre site web fonctionne-t-il encore sous Drupal 7 ? Si c'est le cas, vous avez peut-être entendu la sonnerie d'alarme - la fin de vie de Drupal 7 est arrivée. Mais qu'est-ce que cela signifie exactement pour votre site web et votre présence en ligne ? Dans ce guide complet, nous allons nous pencher sur les détails de la fin de vie de Drupal 7, l'urgence de la migration, les avantages que vous pouvez tirer d'une mise à niveau vers Drupal 9 ou 10, et tout ce qu'il y a entre les deux. Alors, serrez vos ceintures et embarquez pour un voyage qui transformera votre paysage numérique.

    Écrit par Mihail Shahov
    Oct 12, 20236 min read
    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Blog

    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Découvrez la synergie dynamique entre Drupal 10 et Next.js, alors que cette puissante combinaison redessine le paysage du développement web. Next.js, un framework open-source basé sur React, est intégré de manière transparente en tant que frontend headless de Drupal 10, offrant une pléthore d'avantages. De l'amélioration des performances grâce à des fonctionnalités telles que le fractionnement automatique du code et le rendu côté serveur à la conception flexible et aux capacités de référencement, cette collaboration permet aux développeurs de créer des applications web très performantes, évolutives et visuellement attrayantes. La gestion efficace du contenu de Drupal 10 associée à l'adaptabilité de Next.js aux tendances garantit une approche de développement de pointe, positionnant ce tandem à l'avant-garde des pratiques modernes de développement web. Embrassez l'avenir avec la combinaison Drupal 10 et Next.js, redéfinissant la façon dont nous abordons et créons des expériences en ligne dynamiques.

    Écrit par Todor Kolev
    Feb 09, 20246 min read
    Tutoriel sur le module Config split pour Drupal

    Blog

    Tutoriel sur le module Config split pour Drupal

    En tant que développeurs, nous sommes souvent amenés à travailler dans des environnements différents. Cela peut parfois conduire à des problèmes (inattendus). Dans Drupal 8, nous utilisons le système de configuration qui fonctionne plutôt bien, mais il y a des cas où les paramètres pour l'environnement local et tout autre environnement devraient être différents.

    Écrit par Ivaylo Tsandev
    Aug 08, 20238 min read
    Tutoriel du module Config ignore pour Drupal

    Blog

    Tutoriel du module Config ignore pour Drupal

    Parfois, nous ne voulons pas que nos configurations soient partagées dans la base de code. Que faire dans ce cas ?

    Écrit par Ivaylo Tsandev
    Aug 08, 20237 min read
    Comprendre les versions de Drupal et planifier une stratégie de migration

    Blog

    Comprendre les versions de Drupal et planifier une stratégie de migration

    Reconnaître les différentes versions de Drupal et maintenir votre site web à jour.

    Écrit par Svetoslava Angelova
    Aug 08, 20235 min read

    PRENDRE CONTACT

    Vous avez un projet à lancer ?