Dans le cours : Créer un module avec Drupal 8

Comprendre le routing Drupal - Tutoriel Drupal

Dans le cours : Créer un module avec Drupal 8

Démarrer mon mois d’essai gratuit

Comprendre le routing Drupal

Pour ceux qui connaissaient Drupal 7, la gestion des routes et la gestion des URL étaient complètement gérées par le « hook_menu ». Aujourd'hui, avec l'intégration Symfony dans Drupal, on se retrouve avec le système de « routing », donc le système de gestion des routes de Symfony. Au niveau du fonctionnement, sur le principe on reste assez simple. On envoie des requêtes en « POST », en « GET » ou en « SERVER », la classe « Http Kernel » la reçoit, on envoie la requête au système de « Routing » qui lui va renvoyer « quel contrôleur exécuter », et après l'exécution du contrôleur, on renvoie notre réponse la plupart du temps en HTML. Ensuite, pour créer nos routes dans Drupal, on va créer un nouveau fichier. Donc la norme c'est ça : c'est « demo ». Donc le nom du module « point routing point yml ». Alors là, pour l'instant on va simplement créer une route qui va renvoyer vers un contrôleur qui lui affichera le simple message : « Hello world ! ». Donc « nom du module point description ». Donc ensuite, là vous suivez scrupuleusement cette structure hein. Alors là, c'est ici que vous allez saisir l'URL à laquelle vous souhaitez accéder. Par convention, on va utiliser le nom du module comme premier élément de l'URL et ensuite un « hello-world » pour qu'on sache de quoi il s'agit. Alors ensuite on passe au nom du contrôleur, donc on commence par « underscore » et là vous devrez respecter également cette structure. Donc « Drupal ». On commence par un « \ » : « \ le nom du module \ controller ». Donc là, respecter les majuscules... « : : ». A nouveau le nom de la méthode. Donc si vous êtes familier avec la programmation que j'ai, vous savez que cette notation « : : » appelle une méthode. Là les « requirements ». Et ici ce qu'on nous demande c'est de mettre une permission. Alors la permission la plus commune c'est « access content ». Alors je vais vous montrer comment j'accède aux permissions. Alors une petite astuce : Vous allez dans le « CŒUR » de Drupal et vous allez chercher vous-même les permissions. Mais là je trouve que le plus simple : on va l'ouvrir comme ça, on va dans les « droits » et ici on va éditer pour voir la source HTML et en fait on voit un tableau avec une suite de « tr » et en fait, dans chaque « tr » on retrouve le nom de notre permission. Donc ici par exemple on a « administer-comments ». Donc si vous souhaitez que la personne qui accèdera à votre « Hello world » ait les droits pour administrer les commentaires, donc vous allez « copier-coller » ce que je vous ai montré et vous supprimez juste le tiret, vous remplacez un espace. Donc en fait, ça c'est la permission. Donc maintenant la personne qui accèdera à votre URL « demo slash hello world » devra avoir la permission : « administrer les commentaires ». On a vu comment gérer les permissions et si la personne n'a pas la bonne permission que vous avez-vous-même définie, elle aura une erreur « 403 : accès refusé ». Je vais juste remettre « access content ». Donc en général, un utilisateur lambda a le droit d'accéder au contenu hein sauf si on définit le contraire mais c'est le fonctionnement par défaut. Donc tout le monde pourra accéder à cet URL. Alors au niveau de la structure des routes, vous avez encore d'autres éléments disponibles. En fait la documentation fournie par Drupal est très complète, donc ici vous trouverez tous les éléments, toutes les options possibles pour créer votre système de « routing ». Moi je ne vais pas m'étaler là-dessus, il y a une documentation dans Drupal qui est très bien faite et qui vous permettra de créer vous-même vos routes. Alors ces deux liens-là, je les rajoute dans les sources. Donc là, nous venons bien de créer une nouvelle route avec un appel à un contrôleur pour Drupal.

Table des matières