Voici les différences entre un module « hello world » le plus simple possible, entre Drupal 7 (code source) et Drupal 8 (code source).
Drupal 7 | Drupal 8 |
hello.info | hello.info.yml |
name = Hello world description = Minimanlist Hello World in Drupal 7 package = helloworld core = 7.x files[] = hello.module |
name: Hello World module type: module description: An Hello World module showing D8 capabilites package: Example modules core: 8.x |
hello.module | hello.module |
<?php function hello_menu() { $items = array( 'hello_world' => array( 'title' => 'Hello world', 'page callback' => '_page_hello_world', 'access callback' => TRUE, ), ); return $items; } function _page_hello_world() { return array( '#markup' => '<p>Hello world page text (from module) !</p>' ); } |
<?php function hello_menu() { $items['hello'] = array( 'title' => 'Hello Page', 'route_name' => 'hello.world', ); return $items; } |
hello.routing.yml | |
# hello.routing.yml hello.world: path: 'helloworld' defaults: _content: '\Drupal\hello\HelloRouteController::index' requirements: _permission: 'access content' |
|
/lib/Drupal/hello/HelloRouteController.php | |
<?php namespace Drupal\hello; class HelloRouteController { public function index() { return array('#markup' => 'Hello workd page text (from controller) !'); } } |
Comme on peut le voir, le .info est convertit en fichier YAML .info.yml. Pas de grosses différences à ce stade.
Par contre le .module est éclaté en 3 parties. Le hook_menu persiste mais est scindé en 2. Le routing se fait maintenant dans un fichier .routing.yml. Il ne reste plus que la définition du titre du menu dans le module. La callback est quand à elle transformée en controller. En effet, le système de menu de Drupal 7 est remplacé par le routing Symfony2. C’est plus compliqué à écrire, mais c’est aussi plus puissant.
En espérant que Drupal 8 fasse des malheurs, nous sommes pressés de faire nos premiers sites dessus !
Drupal 8 est un gros changement, à tous les niveaux (utilisateur, développeur, chef de projet). Il faut s’attendre à un choc (toute proportion gardée).
Ceci dit, il est très prometteur aussi malgré les difficultés que la communauté rencontre en ce moment pour le sortir.
PS : j’aime beaucoup le design de votre site.