Ne “Bootstrap” pas Drupal, utilise Drush !

Drush, outil indispensable pour développer sous Drupal, permet de contrôler son instance de site via le terminal pour les tâches quotidiennes sur un site : téléchargements, activation de modules, nettoyage de cache, mise à jour de modules ou du core…

Installation de Drush via Composer

Un tas de méthodes existe pour installer Drush et il est même parfois difficile de s’y retrouver : via les dépôts, PEAR, installation manuelle…
Or, le moyen de plus simple reste d’utiliser Composer.

Si vous n’avez pas Composer d’installé :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Ensuite vient l’installation Drush :

composer global require drush/drush

Documentation complète de Drush, c’est par ici : http://www.drushcommands.com/

Note : J’utilise la version 6 de Drush en production et la version 7 en local, me permettant de l’utiliser sur Drupal 8. Si vous souhaitez participer au projet, je vous invite à vous rendre sur leur repo github.

 

Concrètement ?

Lorsque vous faites du développement sous Drupal, vous serez amenés à exécuter des scripts PHP, effectuer des traitements sur différents champs ou nodes.
Dans ses situations, créer un module dédié à ces quelques tests / scripts serait une perte de temps.
D’où l’intérêt de créer un script PHP et « bootstrap » Drupal pour avoir accès à certaines fonctions telles que node_load, user_load ou db_select.

 

Drupal Bootstrap

Pour « bootstrap » Drupal, vous avez besoin d’ajouter ces lignes dans votre script :

<?php
 // Drupal Bootstraping.
 $drupal_core_path = $_SERVER['DOCUMENT_ROOT'];
 define('DRUPAL_ROOT', $$drupal_core_path);
 require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
 drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 // Drupal Bootstrap loaded.
 // Do something.
 $user = user_load(1);

Afin de s’exécuter, le script doit être placé à la racine du répertoire Drupal. Vous aurez  donc à lancer dans un navigateur et aller sur: http://www.votresite.fr/mon_script.php

Note : C’est long hein ? C’est justement là que Drush entre en jeu.

 

La puissance de Drush

Drush dispose d’une foule de méthodes, celle qui nous intéresse ici est « Drush Script » (alias. Drush scr). Elle permet d’exécuter le script depuis la ligne de commande :

$ drush scr mon_script.php

De plus, Drush s’occupant du bootstrap, vous pouvez transformer votre script en :

<?php
 // Drupal is already Bootstrapped
 // We can use Drupal functions
 $user = user_load(1);

Par habitude, on n’aime pas laisser trainer trop de scripts dans la racine de notre projet, on ajoute donc les scripts dans un répertoire « custom ». Ça nous permet notamment d’éviter les erreurs lors de suppression des scripts, d’exécuter les dis scripts sur d’autres installations de Drupal, rien qu’en déplaçant les sources 😀

$ drush scr ../custom/mon_script.php

 

Benjamin

 

Sources:
Drush commands : https://drushcommands.com/drush-8x/
Drush project page : https://www.drupal.org/project/drush
Composer : https://getcomposer.org/