Drupal 8 - Prise en main de Drupal Console, installation et configuration

Drupal 8 - Prise en main de Drupal Console, installation et configuration

Drupal 8 est là, et avec lui de nombreux outils commencent à arriver, parmi eux : Drupal Console, qui vise à intégrer l'outil console de Symfony avec Drupal.

La console ne remplace pas (encore?) drush, mais propose un paquet de fonction permettant par exemple de générer des modules, des blocs, des entités, des types de contenus...

Le développement autour de cet outil est très actif et vous pouvez suivre ou participer à son développement sur la page Github du projet : https://github.com/hechoendrupal/DrupalConsole.

Installation de Drupal Console

MacOS et GNU/Linux

Mise à jour 2017 : Drupal Console s'installe maintenant en deux étapes : 

  1. il faut commencer par installer Drupal Console Launcher, qui est global et permet d'utiliser la console depuis n'impore où.
  2. Installer Drupal console ensuite au niveau de chaque projet, via composer par exemple.

Étape 1 : Installation du launcher

Dans un terminal :

# Téléchargement de l'outil
curl https://drupalconsole.com/installer -L -o drupal.phar

# On le déplace dans un dossier de binaires afin de pouvoir 
# le lancer depuis n'importe où 
# (à noter : on exécute la commande en tant qu'administrateur)
sudo mv drupal.phar /usr/local/bin/drupal

# On le rend exécutable : 
# (à noter : on exécute aussi la commande en tant qu'administrateur)
sudo chmod +x /usr/local/bin/drupal

Étape 2 : Installation en dépendance du projet via Composer

Pour ajouter drupal console en dépendance à votre projet, dans un terminal, déplacez-vous au niveau du dossier puis faite :

composer require drupal/console:~1.0 \
--prefer-dist \
--optimize-autoloader

À noter que les templates d'installation via composer, comme Drupal Project, possèdent déjà Drupal Console en dépendance.

Windows

Je n'ai pas pu tester l'installation sous windows, je peux juste vous renvoyer à la documentation : https://docs.drupalconsole.com/en/getting/windows.html

Test

Si ce dossier est dans votre variable d'environement "PATH" alors vous devrier pouvoir lancer la commande "drupal" depuis n'importe quel dossier.

Pour vérifier que l'outil est bien disponible, lancez la commande "drupal" depuis un terminal, et vous devriez avoir quelque chose comme ça :

Configuration initiale

Via la commande

drupal init

Drupal console va stocker dans votre répertoire personnel des informations de configuration.

Cette partie n'est absolument pas obligatoire, mais elle vous permettra de modifier un peu son comportement, de passer l'outil en Français par exemple, mais aussi d'avoir de l'auto-complétion.

La première question est à propos de l'endroit où stocker la configuration, je préfère la stocker dans mon dossier "Home" afin de pouvoir la sauvegarder.

Vous pouvez changer la langue de l'outil, attention la traduction FR n'est pas parfaite.

Si vous souhaitez bénéficier de l'auto-complétion suivez les retours de la commande et en fonction de votre interpréteur de terminal :

Bash or Zsh: Ajouter la ligne suivante à votre fichier .bashrc ou .zshrc :

source "$HOME/.console/console.rc" 2>/dev/null

Fish: Créez un lien symbolique

ln -s ~/.console/drupal.fish ~/.config/fish/completions/drupal.fish

La configuration est terminée, bravo vous allez pouvoir passer aux choses sérieuses !

Drupal Console & Drupal 8

L'objectif de Drupal Console est donc d’interagir avec un site / une application sous Drupal 8. Dans un terminal, déplacez-vous dans le dossier contenant votre instance du CMS.

Si vous n'avez pas encore installé de site Drupal, vous pouvez utiliser composer comme indiqué dans ce post.

À noter vous devrez être dans le dossier contenant les sources de drupal (exemple le dossier "Web" si vous avez installé Drupal via composer)

Pour voir la liste des commandes disponibles avec une explication lancez :

drupal list

Vous vous rendrez rapidement compte que la traduction en Français est loin d'être complète, n'hésitez-pas à participer sur la page du projet.

Génération d'un module

Le mieux étant d’expérimenter, essayez de générer un module :

la commande est drupal generate:module, mais vous pouvez aussi jouer avec l'auto-complétion :

Drupal Console Generate

Lancez la commande et laissez-vous guider :

drupal generate:module  

 // Bienvenue sur le générateur de modules Drupal

 Entrez le nom du nouveau module:
 > Mon Module

 Entrez le nom de la machine du module [mon_module]:
 > 

 Entrez le chemin du module [/modules/custom]:
 > 

 Entrez la description du module [My Awesome Module]:
 > Mon super module de test 

 Entrez le nom du paquet [Other]:
 > Kgaut

 Entrez la version core Drupal [8.x]:
 > 

 Définir le module comme une fonctionnalité <em>feature</em> (yes/no) [no]:
 > no

 Voulez-vous ajouter un fichier composer.json file à votre module (yes/no) [yes]:
 > yes

 Voulez-vous ajouter des dépendances à votre module (yes/no) [no]:
 > no


 Confirmez-vous la génération (yes/no) [yes]:
 > yes

Fichiers générés ou mis à jour
 Chemin du site: /media/vhosts/drupal8-test.dev/web
 1 - modules/custom/mon_module/mon_module.info.yml
 2 - modules/custom/mon_module/mon_module.module
 3 - modules/custom/mon_module/composer.json

Et maintenant vous verrez effectivement le module généré dans votre dossier modules/custom/.

Les modules ne sont pas les seules choses que vous puissiez générer à l'aide de Drupal Console : Types de contenu, Thèmes, Type d'entités...

Vous pouvez aussi générer du contenu factice pour populer vos types de contenus ou vocabulaires.

Mise à jour de Drupal Console

Le développement de Drupal Console est très actif, pour mettre à jour l'outil lancez la commande :

sudo drupal self-update

Commentaires

Bonjour
Merci pour les articles sur D8
Comment fait-on pour désinstaller proprement la console ?
Merci

Bonjour,

Si vous l'avez installé comme présenter dans ce tuto alors :

# Suppresion de Drupal Console
sudo rm /usr/local/bin/drupal

# Suppresion de la config
sudo rm -Rf ~/.console/

 

Merci pour la réponse.
J'ai réinstallé la console et ça fonctionne si je lance la commande drupal.
Mais quand je lance la commande drupal à partir du dossier drupal 8 j'ai une erreur : SQLSTATE[HY000] [2002] No such file or directory
Auriez-vous une idée sur la question ?
Merci

La réponse a du déjà être trouvée, mais pour info ...
La réponse se trouve dans la documentation de drupalConsole (drupal-console-en.pdf) en fin du document. Je reproduit les lignes en anglais mais elles sont explicites.

You will need to edit your 'host' in your 'settings.php' file.
Navigate to sites/default/settings.php. In your settings.php file, change the host to read:
'host' => '127.0.0.1'
or if your 'settings.php' file already reads:
'host' => 'localhost'.
After you make the change, be sure to save the file and then run DrupalConsole again.

Bonjour,
Bravo pour le tuto c'est très utile.
J'obtiens l'erreur PDOException No such file or directory
J'ai changé la config du setting.php.
Du coup j'obtiens l'erreur SQLSTATE[HY000] [2002] Connection refused drupal console, et pire le site n'est plus déployable :s

Bonjour,

À quel moment obtennez-vous cette erreur ?

Je l'obtiens lorsque je me positionne dans le répertoire de mon site et j'essaie la commande Drupal. Celle ci fonctionne parfaitement dans toute autre arborescence, mais ne fonctionne pas sur mon site.
A noter que j'utilise MAMP/drupal 8, je suis sur mac, j'ai créé le site avec la méthode classique et non grâce à composer.

pas de réponse ? je galère vraiment pour faire marche drupal console :(

Cette solution ne fonctionne pas ?

[ERROR] Drupal Console is not installed at:

You must execute the following composer commands:

composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader
composer update drupal/console --with-dependencies

Bonjour
Je reviens à drupal 8 quelques mois après... et j'ai toujours le même problème avec la console.

J'ai suivi scrupuleusement vos instructions et je me retrouve avec un : SQLSTATE[HY000] [2002] No such file or directory et si je change dans settings.pph 'localhost' pour '127.0.0.1' j'ai SQLSTATE[HY000] [2002] Connection refused avec em prime le site qui est inaccessible !

Ça doit faire une petite semaine que j'essaye de faire fonctionner la chose et je deviens maboule ;-)

Peut-être avez vous une suggestion, une petite piste... allez même un petit encouragement !!!

Merci

Bonjour,

La réponse est un peu tardive mais cela pourra peut être aider certains.
Le problème d'erreur SQLSTATE vient probablement du fait que la configuration dans le fichier settings.php a été mise avec un 'localhost'.
Il faudrait mettre :
'127.0.0.1'

Cf la source : https://www.drupal.org/project/console/issues/2488892

J'ai suivi votre méthode pour installer Console, je ne voulais pas l'installer. Entre composer, drush et console, drupal devient de plus en plus complexe, je hais drupal, la doc c'est le chaos. Et en fait je crois que console est bien pratique et que des petits exemples pour la gestion au quotidien serait plus attractif que de l'installer pour créer un module. J'essayais de passer un install en mod dev, dupliquer tel fichier, rajouter, décommenter, punaise je hais drupal. Et un coup de console " mod dev", je n'ai pas encore tout cerné mais que c'est plus simple au final. Merci donc pour le petit tuto.

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...