A la découverte
de Drush
« le couteau Suisse de Drupal »
Julien Dubreuil
17 nov. 2010
Sommaire
1. Présentation de Drush
2. Comment ça fonctionne
3. Alias de site
4. Créer ses commandes Drush
5. Drush Make
2
Les bases de Drush
3
Drush c’est quoi ?
Drupal Shell
Drush n’est pas un module
Regroupement de scripts
Compatible Drupal 5, 6 et 7
Opérationnel...
Pour quoi faire ?
Télécharger, activer, désinstaller des
modules, des thèmes...
Mettre à niveau Drupal
Effacer le cache
Ex...
Pourquoi utiliser Drush?
Gagner du temps
Simplifier certaines tâches
Créer des scripts d’automatisation
6
Pré requis
Accès en ligne de commande à votre serveur
Version minimum PHP 5.2
Modifier le fichier php.ini de php-cli
Par e...
Télécharger Drush
http://drupal.org/project/drush
Version actuelle 3.3.
8
Installer Drush
Voir le fichier README.TXT
Rendre le script Drush exécutable
Créer un lien symbolique ou un alias vers
/us...
Configuration
Tout se passe dans drushrc.php
Configurer les différents chemins d’accès
Créer des alias de sites
Définir de...
Comment ça marche ?
11
Utiliser Drush
Drush est accessible de partout
$ drush [options] <command> [argument1]
12
Help !
$ drush
$ drush help [commande]
README.TXT et /examples
13
Informations
• core-status
• drupal-directory (dd)
• site-alias (sa)
• help
$ drush core-status
14
Maintenance
• updatedb (updb)
• cache-clear (cc)
• core-cron
• site-upgrade (sup)
$ drush cc all
15
Gestion des modules
• pm-enable (en)
• pm-disable (dis)
• pm-uninstall
• pm-list (sm)
• pm-releases
$ drush dl cck views p...
Base de données
• sql-conf
• sql-dump
• sql-sync
$ drush sql-dump > backup.sql
• sql-connect
• sql-query (sqlq)
• sql-cli ...
Variables
• variable-get (vget)
• variable-set (vset)
• variable-delete (vdel)
$ drush vset site_offline 1
18
Drush : ce qu’il faut retenir
• Facile à utiliser
• Gain de temps
19
Plus loin avec Drush
Alias de site - Commandes drush - Drush make
20
Alias de site
21
Pourquoi créer des alias ?
Accéder facilement à vos sites
Sans alias
$ drush --root=/path/to/drupal --uri=dev.sandbox.net
...
Déclaration des alias
Création d’un répertoire .drush
Création d’un fichier nommé alias.drushrc.php
2 paramètres requis :
...
julien@ubuntu:~$ cd .drush/
julien@ubuntu:~/.drush$ ls aliases.drushrc.php
julien@ubuntu:~/.drush$ vi aliases.drushrc.php
...
$aliases['dev'] = array(
'uri' => 'dev.mydrupalsite.com',
'root' => '/path/to/drupal/root',
);
$aliases['stage'] = array(
...
Visualiser les alias
disponibles
julien@ubuntu:~$ drush sa
@stage
@dev
@sandbox
@aegir
@cooking
julien@ubuntu:~$
26
Utiliser un alias
$ drush @alias [options] <command> [argument1]
julien@ubuntu:~$ drush @sandbox dl cck views
julien@ubunt...
Commandes Drush
28
Commande Drush
Création d’un fichier nommé .drush.inc
3 étapes pour créer une nouvelle commande :
- déclaration de celle-c...
/**
* Implementation of hook_drush_command().
*/
function sandwich_drush_command() {
$items = array();
$items['make-me-a-s...
/**
* Implementation of hook_drush_help().
*/
function sandwich_drush_help($section) {
switch ($section) {
case 'drush:mak...
/**
* Example drush command callback. This is where the action takes place.
*/
function drush_sandwich_make_me_a_sandwich(...
Utiliser votre commande
34
julien@ubuntu:~$ drush make-me-a-sandwich
julien@ubuntu:~$ drush mmas
Drush Make
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 Drush Make
http://drupal.org/project/drush_make
Version 6.x-2.0-beta9
Installer Drush Make
Voir le fichier INS...
Les commandes
• make
• convert-makefile
• generate-makefile
• verify-makefile
38
Drush Make en pratique ?
2 méthodes
- Créer votre fichier à la main
- Générer votre fichier
39
Exemple
40
; Core version
core = 6.x
; API version
api = 2
; Core project
projects[] = "drupal"
; Modules
projects[] = "cc...
Exemple
41
; Modules
projects[cck][subdir] = "contrib"
projects[views][subdir] = "contrib"
projects[views][version] = 2.11...
Exemple
42
libraries[jquery_ui][download][type] = "get"
libraries[jquery_ui][download][url] =
"http://jquery-ui.googlecode...
Exécuter un fichier .make
Placez vous dans le répertoire
$ drush make /chemin/sandbox.make
43
Ce qu’il faut retenir
44
Drush : ce qu’il faut retenir
• Facile à utiliser
• Gain de temps
• Configurable
• Extensible
• Indispensable
45
En savoir plus
Projet
http://drupal.org/project/drush
http://drupal.org/project/drush_make
FAQ
http://drush.ws/faq
Mémento...
Questions ?
47
48
Merci
Crédits photos :
http://www.flickr.com/photos/st3f4n/sets/72157616350171741/
http://www.flickr.com/photos/-spam-/...
Prochain SlideShare
Chargement dans…5
×

Presentation drush

6 968 vues

Publié le

Présentation Drush par Julien Dubreuil. Comment gagner du temps dans vos tâches quotidiennes avec Drupal grâce à un outil.

Publié dans : Technologie
  • Soyez le premier à commenter

Presentation drush

  1. 1. A la découverte de Drush « le couteau Suisse de Drupal » Julien Dubreuil 17 nov. 2010
  2. 2. Sommaire 1. Présentation de Drush 2. Comment ça fonctionne 3. Alias de site 4. Créer ses commandes Drush 5. Drush Make 2
  3. 3. Les bases de Drush 3
  4. 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. 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
  6. 6. Pourquoi utiliser Drush? Gagner du temps Simplifier certaines tâches Créer des scripts d’automatisation 6
  7. 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
  8. 8. Télécharger Drush http://drupal.org/project/drush Version actuelle 3.3. 8
  9. 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. 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
  11. 11. Comment ça marche ? 11
  12. 12. Utiliser Drush Drush est accessible de partout $ drush [options] <command> [argument1] 12
  13. 13. Help ! $ drush $ drush help [commande] README.TXT et /examples 13
  14. 14. Informations • core-status • drupal-directory (dd) • site-alias (sa) • help $ drush core-status 14
  15. 15. Maintenance • updatedb (updb) • cache-clear (cc) • core-cron • site-upgrade (sup) $ drush cc all 15
  16. 16. Gestion des modules • pm-enable (en) • pm-disable (dis) • pm-uninstall • pm-list (sm) • pm-releases $ drush dl cck views panels • pm-info • pm-download (dl) • pm-update (up) • pm-updatecode (upc) • pm-refresh (rf) 16
  17. 17. Base de données • sql-conf • sql-dump • sql-sync $ drush sql-dump > backup.sql • sql-connect • sql-query (sqlq) • sql-cli (sqlc) 17
  18. 18. Variables • variable-get (vget) • variable-set (vset) • variable-delete (vdel) $ drush vset site_offline 1 18
  19. 19. Drush : ce qu’il faut retenir • Facile à utiliser • Gain de temps 19
  20. 20. Plus loin avec Drush Alias de site - Commandes drush - Drush make 20
  21. 21. Alias de site 21
  22. 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. 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
  24. 24. julien@ubuntu:~$ cd .drush/ julien@ubuntu:~/.drush$ ls aliases.drushrc.php julien@ubuntu:~/.drush$ vi aliases.drushrc.php Exemple de fichier 24
  25. 25. $aliases['dev'] = array( 'uri' => 'dev.mydrupalsite.com', 'root' => '/path/to/drupal/root', ); $aliases['stage'] = array( 'uri' => 'stage.mydrupalsite.com', 'root' => '/path/to/remote/drupal/root', 'db-url' => 'pgsql://username:password@dbhost.com :port/databasename', 'path-aliases' => array( '%dump' => '/path/to/live/backup.sql', ), ); 25
  26. 26. Visualiser les alias disponibles julien@ubuntu:~$ drush sa @stage @dev @sandbox @aegir @cooking julien@ubuntu:~$ 26
  27. 27. Utiliser un alias $ drush @alias [options] <command> [argument1] julien@ubuntu:~$ drush @sandbox dl cck views julien@ubuntu:~$ 27
  28. 28. Commandes Drush 28
  29. 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. 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. 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. 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
  33. 33. Utiliser votre commande 34 julien@ubuntu:~$ drush make-me-a-sandwich julien@ubuntu:~$ drush mmas
  34. 34. Drush Make 35
  35. 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
  36. 36. Télécharger Drush Make http://drupal.org/project/drush_make Version 6.x-2.0-beta9 Installer Drush Make Voir le fichier INSTALL.txt 37
  37. 37. Les commandes • make • convert-makefile • generate-makefile • verify-makefile 38
  38. 38. Drush Make en pratique ? 2 méthodes - Créer votre fichier à la main - Générer votre fichier 39
  39. 39. Exemple 40 ; Core version core = 6.x ; API version api = 2 ; Core project projects[] = "drupal" ; Modules projects[] = "cck"
  40. 40. Exemple 41 ; Modules projects[cck][subdir] = "contrib" projects[views][subdir] = "contrib" projects[views][version] = 2.11 projects[jquery_ui][subdir] = "contrib" ; Themes projects[basic][subdir] = "contrib" projects[rootcandy][subdir] = "contrib"
  41. 41. Exemple 42 libraries[jquery_ui][download][type] = "get" libraries[jquery_ui][download][url] = "http://jquery-ui.googlecode.com/files/jquery- ui-1.7.3.zip" libraries[jquery_ui][directory_name] = jquery.ui libraries[jquery_ui][destination] = modules/contrib/jquery_ui
  42. 42. Exécuter un fichier .make Placez vous dans le répertoire $ drush make /chemin/sandbox.make 43
  43. 43. Ce qu’il faut retenir 44
  44. 44. Drush : ce qu’il faut retenir • Facile à utiliser • Gain de temps • Configurable • Extensible • Indispensable 45
  45. 45. En savoir plus Projet http://drupal.org/project/drush http://drupal.org/project/drush_make FAQ http://drush.ws/faq Mémento des commandes http://markferree.com/sites/default/files/drush-cheatsheet_0.pdf Mes posts de blog http://juliendubreuil.fr/tag/drush 46
  46. 46. Questions ? 47
  47. 47. 48 Merci Crédits photos : http://www.flickr.com/photos/st3f4n/sets/72157616350171741/ http://www.flickr.com/photos/-spam-/sets/72157623915393872/ « Que la force de Drush soit avec vous ! » Blog : http://juliendubreuil.fr Twitter : @juliendubreuil

×