4. Drush c’est quoi ?
Drupal Shell
Drush n’est pas un module
Regroupement de scripts
Compatible Drupal 5, 6 et 7
Opérationnel sur Linux, Mac et Windows
4
5. Pour quoi faire ?
Télécharger, activer, désinstaller des
modules, des thèmes...
Mettre à niveau Drupal
Effacer le cache
Exécuter le cron de Drupal
Exécuter du Php ou du Sql.
5
7. Pré requis
Accès en ligne de commande à votre serveur
Version minimum PHP 5.2
Modifier le fichier php.ini de php-cli
Par exemple : /etc/php5/cli/php.ini
max_execution_time = 90
max_input_time = 180
memory_limit = 512M
7
9. Installer Drush
Voir le fichier README.TXT
Rendre le script Drush exécutable
Créer un lien symbolique ou un alias vers
/usr/local/bin/drush
9
10. Configuration
Tout se passe dans drushrc.php
Configurer les différents chemins d’accès
Créer des alias de sites
Définir des commandes spécifiques
Surcharger certaines variables
Paramétrer les dumps de base de données
10
22. Pourquoi créer des alias ?
Accéder facilement à vos sites
Sans alias
$ drush --root=/path/to/drupal --uri=dev.sandbox.net
status
Avec alias
$ drush @sandbox status
22
23. Déclaration des alias
Création d’un répertoire .drush
Création d’un fichier nommé alias.drushrc.php
2 paramètres requis :
- l’adresse web du site
- l’emplacement du site
+ d’informations :
/drush/examples/example.aliases.drushrc.php
23
29. Commande Drush
Création d’un fichier nommé .drush.inc
3 étapes pour créer une nouvelle commande :
- déclaration de celle-ci à drush
- ajout de l’aide pour l’utilisateur
- création de notre commande Drush
+ d’informations :
/drush/examples/sandwich.drush.inc
30
30. /**
* Implementation of hook_drush_command().
*/
function sandwich_drush_command() {
$items = array();
$items['make-me-a-sandwich'] = array(
'description' => "Makes a delicious sandwich.",
'arguments' => array(
'filling' => 'The type of the sandwich (turkey, cheese, etc.)',
),
'options' => array(
'spreads' => 'Comma delimited list of spreads (e.g. mayonnaise, mustard)',
),
'examples' => array(
'drush make-me-a-sandwich turkey --spreads=ketchup,mustard',
),
'aliases' => array('mmas'),
'bootstrap' => DRUSH_BOOTSTRAP_DRUSH, // No bootstrap at all.
);
return $items;
}
31
31. /**
* Implementation of hook_drush_help().
*/
function sandwich_drush_help($section) {
switch ($section) {
case 'drush:make-me-a-sandwich':
return dt("This command will make you a delicious sandwich, just how you like
it.");
}
}
32
32. /**
* Example drush command callback. This is where the action takes place.
*/
function drush_sandwich_make_me_a_sandwich($filling = 'ascii') {
$str_spreads = '';
if ($spreads = drush_get_option('spreads')) {
$list = implode(' and ', explode(',', $spreads));
$str_spreads = ' with just a dash of ' . $list;
}
$msg = dt('Okay. Enjoy this !filling sandwich!str_spreads.',
array('!filling' => $filling, '!str_spreads' => $str_spreads)
);
drush_print("n" . $msg . "n");
drush_print(file_get_contents(dirname(__FILE__) . '/sandwich.txt'));
}
33
35. Drush make, mais encore?
Drush make n’est pas inclus dans Drush
Création d’un fichier d’extension .make
Liste de choses à télécharger
Intérêt = réutilisabilité des fichiers
Pratique pour les profils d’installations ou
distributions
36
1) Gagner du temps
Téléchargement et activation d’un module :
clic clic 8-9 étapes
drush 2 étapes
2) et 3) Automatisation
Drush = php donc scriptable
Couplé à la cron = outil puissant
Exemple sous Mac / linux
Drusrc.php peut etre placé dans :
.drush
Répertoire du projet
…
Toutes les commandes ne sont pas forcement disponible pour chaque version de Drupal
site-install (D7)
Gagner du temps une fois de plus
Plusieurs possibilité pour déclarer des alias
Création du fichier
2 paramètres minimums
Exemples de modules qui ont des commandes
Drush make n’est pas inclus dans Drush
Brique supplémentaire
.make contenant une liste de chose à télécharger
Installation
archive dans .drush
télécharger un module
télécharger une version particulière d’un module
télécharger et placer le module dans un sous rep
télécharger un theme
télécharger un module
télécharger une version particulière d’un module
télécharger et placer le module dans un sous rep
télécharger un theme
télécharger un module
télécharger une version particulière d’un module
télécharger et placer le module dans un sous rep
télécharger un theme