Drupal 8 Outils du développeur

Comme en témoigne mon petit module hello world, l’API et l’architecture de Drupal 8 sont autrement plus complexe que celle de Drupal7.

Tout programmeur est amené a se poser la question : si je me trompe, comment vais-je debugger mon code ?

Drupal 7 se base sur certains principes fondamentaux simples et universel : les hooks (qui sont des sortes de callbacks améliorées, reproduisant en PHP une forme d’AOP), les tableaux associatifs (et rarement des objets). La plupart des cas sont réglés par un bon vieux « dsm » (du module « devel » qui reste toujours présent dans Drupal 8) qui permet d’afficher le contenu de n’importe quelle variable, façon « krumo » :

Si cette méthode reste valable en Drupal 8, elle peut se révéler trop rudimentaire. Quand on se trompe de nom de classe à hériter ou d’annotation, un dsm ne nous sauvera pas. Il va nous falloir d’autres outils. Je vous en présentes ici les plus utiles.

Composer mananger

Pour l’installer il y a plusieurs étapes :

drush en -y composer_manager
drush composer-manager-init
cd core
composer drupal-update

Permet de lister les packages installés et leurs versions.

Pour rentrer dans les entrailles de la bête :

vim core/vendor/composer/autoload_classmap.php

 

 

Quelques articles sur les problèmes de dépendances (quand 2 composants dépendent de 2 versions différentes d’une même librairie):

Je mentionne le Composer extension pour drush (pas trop compris l’intérêt) : https://drupal.org/project/composer

Petit exemple pour rajouter une dépendance à son module : mymodule/composer.json [attention il faut rajouter composer.json & le champ name est important pour être reconnu par composer manager]

{
  "name": "drupal/mymodule",
  "description": "An automaticcaly generated module",
  "license": "GPL-2.0+",
  "require": {
    "acquia/acquia-sdk-php-cloud-api": ">=0.9.0,<0.10.0",
    "monolog/monolog": "1.10.*"
  }
}

Plugin

Permet de lister les plugins au sens Drupal (eq. hooks regroupés en objets) – ne fonctionne plus à l’heure actuelle en beta12.

Le Web Profiler

Indispensable. C’est un outil qui vient de symfony2 et qui a été adapté à Drupal8.

Pour installer le web-profiler, actuellement (en béta7) il faut suivre plusieurs étapes. En effet, certains modules ne s’installent pas correctement si les dépendances « internes » (packages s2) ne sont pas résolues :

  • Installer drush 7.x
  • Installer le Composer Manager
  • Rafraîchir les dépendances :
    • drush composer-manager-init
    • /core composer drupal-update
  • Installer le WebProfiler

Drupal8 debug1

Le console logger

  • Installer le module « Consoller logger »
  • Lancer la console : drush runserver 2> /dev/null
  • Écrire dans la console : file_put_contents("php://stdout", sprintf("test"));

Debug Twig

  • Activer le debug Twig : sites/default/services.yml
  • {{ dump(text) }}
  • \Doctrine\Common\Util\Debug::dump($votreCollection);

La console Drupal

Semblable à la console symfony2, mais pour Drupal. Permet de générer des modules à la volé, d’avoir un canevas.

Pour l’installer :

curl -LSs http://drupalconsole.com/installer | php

exemple d’utilisation :

./console.phar generate:module

Generator UI

Similaire a la console, mais dédié à la génération de modules. Dispose de plus de templates que la console, mais pourrait être fusionné avec à terme :

Drupal8 - generator UI

Le module upgrader

Permet d’upgrader automatiquement un module drupal 7 en 8. Pour l’installer

drush dl drupalmoduleupgrader

cd drupalmoduleupgrader

composer update

drush en -y drupalmoduleupgrader

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *