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

L'intégration de frameworks frontaux comme Angular avec des systèmes de gestion de contenu (CMS) est devenue une pratique courante dans le développement web. Ce guide vise à accompagner les développeurs dans le processus d'intégration d'Angular avec Drupal, en exploitant les avantages de ces deux technologies.