Blog

Introduction au développement de module sur Drupal 8

02.01.2014
parlez-vous-drupal_visu_09_cut

Sommaire

En bref
  • Drupal 8 change la structure des modules : on crée un dossier dans /modules à la racine, un fichier .info.yml pour les métadonnées, un .module si besoin, un fichier routing.yml pour définir les routes.
  • Le module doit inclure un contrôleur classé dans un namespace Drupal<modulename>\Controller, qui retourne un render array ou utilise Twig pour afficher le contenu.
  • Le système de permissions est lié aux routes définies dans routing.yml. Le fichier info.yml doit indiquer le core requis, nom, description, etc.

Drupal 8 introduit un changement majeur dans le développement des modules custom avec notamment l'ajout de Symfony.

Cet article porte sur la façon de créer un module sur Drupal 8 ainsi que les nouveaux concepts de routes et de classes de contrôleur menu.

 

1. Création du module

  • Pour commencer, comme sur Drupal 7, nous allons créer un répertoire que l'on nommera ici « hello » dans /modules à la racine.


On notera au passage que le core de Drupal 8 se trouve dans le répertoire « core ». On ne touchera donc jamais à ce répertoire.

On notera également que les dossiers dans lesquels nous pourrons ajouter des modules et des thèmes se trouvent maintenant à la racine soit /modules et /themes en remplacement de /sites/all/modules et /sites/all/themes sur Drupal 7.

  • Dans notre répertoire « hello », nous allons créer un fichier intitulé « hello.info.yml »
     

Contrairement à Drupal 7, le fichier d'informations du module n'est pas plus « mon_module.info » mais « mon_module.info.yml ».

En effet, Drupal 8 utilise le format YAML pour ses fichiers.

Pour le fichier info cela reste assez similaire à Drupal 7.

  • Dans notre fichier info, nous allons insérer le code suivant :
     

    name: Hello World!
    type: module
    description: 'Displays a Hello World page.'
    package: Example Modules
    version: VERSION
    core: 8.x

     

2. Création du fichier .module

Dans Drupal 8, la création du fichier .module ne change pas.

  • Nous allons donc créer un fichier nommé «  hello.module » et y insérer le code suivant :


 

Nous avons créer ici un hook_menu contenant un titre, une description et le nom de la route.
Dans ce hook_menu la route est constitué du nom_du_module.le_nom_de_la_route que l'on retrouvera dans le prochain fichier que nous allons créer.

3. Création du fichier route

  • Nous allons maintenant créer le fichier route que l'on nommera « hello.routing.yml » et on y insère le code suivant :
     
    hello.hello_world:
      path: '/hello_world'
      defaults:
        _content: '\Drupal\hello\Controller\HelloController::helloWorld'
      requirements:
        _permission: 'view hello world'

Ce fichier va permettre de définir le chemin du menu, les permissions ainsi que les classes et les méthodes utilisées par le contrôle

4. Création du contrôleur
 

  • Le dernier fichier à créer pour afficher notre Hello World est le contrôleur. Ce fichier sera placé dans le répertoire \lib\Drupal\hello\Controller\HelloController.php que l'on crée dans le répertoire du module. On le nomme « HelloController.php » et on y insère le code suivant :
     

    <?php
    /**
    * @file
    * Contains \Drupal\hello\Controller\HelloController.
    */ namespace Drupal\hello\Controller;

    use

    Drupal\Core\Controller\ControllerBase; /**
    * Controller routines for hello module routes.
    */
    class HelloController extends ControllerBase {

     

    /**
       * Return the 'Hello World' page.
       *
       * @return string
       *   A render array containing our 'Hello World' page content.
       */
      public function helloWorld() {
        $output = array();

       

    $output['hello'] = array(
          '#markup' => 'Hello World!',
        );

        return

    $output;
      }

    }

    ?>


     

Et voilà ! Avec ces 4 fichiers notre module est crée et permet en accédant à l'url /hello_world de voir apparaître notre fameux Hello World.

Un projet ? Parlons-en

En tant qu'agence web experte Drupal, nous sommes à votre écoute pour étudier vos besoins
et vous proposer les meilleures solutions.

Autres articles

L'accessibilité est une préoccupation croissante car il est important que tous les utilisateurs, y compris ceux qui ont des besoins particuliers, puissent accéder facilement et efficacement à votre site. Drupal offre plusieurs moyens d'améliorer l'accessibilité de votre site Web

En 2025, Debian reste un choix de prédilection pour les administrateurs système et les DevOps du monde entier. Sa réputation de stabilité, de sécurité et sa communauté active ne sont plus à prouver. Cependant, le paysage de l'hébergement web évolue à une vitesse fulgurante. De nouvelles menaces émergent constamment, les robots d'IA scannent le web avec une agressivité inédite et les exigences de performance sont de plus en plus élevées. Il est donc crucial de mettre à jour ses pratiques de configuration.