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-/...
Upcoming SlideShare
Loading in …5
×

Presentation drush

6,740 views

Published on

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

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,740
On SlideShare
0
From Embeds
0
Number of Embeds
4,190
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Quelques tâches possibles à réaliser
  • 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
  • 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

    ×