
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