Blog

Introduction au développement de module sur Drupal 8

02.01.2014
parlez-vous-drupal_visu_09_cut

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

Nous sommes à votre écoute pour étudier vos besoins
et vous proposer les meilleures solutions.

Autres articles

Ce mercredi 7 juin 2023, l'équipe de sécurité de Drupal a annoncé officiellement un nouveau délais supplémentaire en prolongeant le support de Drupal 7 jusqu'au  5 janvier 2025, tout en précisant qu'il s'agit de la dernière prolongation, et que le niveau de support fourni serait ajusté