Drupal 8 - Prise en main de Drupal Console, installation et configuration
Drupal 8 est là est avec lui de nombreux outils commencent à arriver, parmi eux : Drupal Console, qui est 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
Pour l'instant la Drupal Console ne fonctionne pas sous les système windows. Sous linux et Mac Os voila comment l'installer (à lancer 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 # Attention, c'est la ligne suivante qui défini le nom de la # commande que l'on utilisera : "drupal" par défaut # Si vous souhaitez un autre nom, comme par exemple # "drupal-console", lancez à la place : # sudo mv drupal.phar /usr/local/bin/drupal-console # On le rend exécutable : # (à noter : on exécute aussi la commande en tant qu'administrateur) sudo chmod +x /usr/local/bin/drupal
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.
Dans mon cas la configuration se trouvera dans le fichier /home/kgaut/.console/config.yml dont voici le contenu :
application: environment: 'prod' language: en editor: vim temp: /tmp remote: user: root port: 22 console: /usr/local/bin/drupal options: --ansi arguments: keys: public: ~/.ssh/id_rsa.pub private: ~/.ssh/id_rsa passphrase: ~/.ssh/passphrase.txt disable: modules: # - module_name # - module_name default: commands: generate: controller: options: # module: module_name
Si vous souhaitez passer l'outil en Français, changez la ligne 3 de
language: en
à
language: fr
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)
Maintenant si vous relancer la commande "drupal" vous devriez avoir un résultat un peu différent :
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 :
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