Blog

Introduction au développement de module sur Drupal 8

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 :

 'Hello',
    'description' => 'The Hello World page',
    'route_name' => 'hello.hello_world',
  );
  return $items;
}
?>

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.

Ces articles peuvent également vous intéresser :

Ajouter un commentaire