Accélérer le développement Drupal avec Drupal Console et Drush

Publié: 2022-02-22

Nous avons beaucoup écrit (nous sommes dans ce domaine) sur la façon dont Drupal 8 a non seulement modernisé les expériences numériques pour l'utilisateur, mais également facilité le travail de développement pour les développeurs Drupal. Dans cet article, nous allons discuter de deux de ces outils utilitaires Drupal 8/9 qui ont considérablement simplifié et amélioré la façon dont vous travaillez avec le code, les modules et les installations Drupal - Drupal Console et Drush.

Console Drupale

Qu'est-ce que la console Drupal

Depuis l'avancement de Drupal 8, il est devenu nécessaire d'ajouter beaucoup de code passe-partout pour construire un nouveau module. Bien sûr, vous pouvez simplement copier et coller le code, mais le faire à plusieurs reprises peut ouvrir la porte à de nombreuses erreurs. C'est bon. Nous sommes humains. Heureusement, nous avons la console Drupal - une suite d'outils que vous exécutez sur une CLI (interface de ligne de commande) qui vous permet de générer automatiquement du code passe-partout. Il exploite la console Symfony et d'autres composants tiers pour générer la plupart du code nécessaire à la construction d'un module Drupal 8/9.

Qu'est-ce que Drush

Drush (Drupal + Shell) est l'outil CLI d'origine pour Drupal. Il vous permet de lancer facilement de nouveaux sites Web Drupal et vous aide à rationaliser les tâches de développement et d'administration. Drush est livré avec de nombreuses commandes faciles à mettre en œuvre qui vous permettent d'interagir avec vos installations, thèmes, modules Drupal et plus encore. Certaines des autres tâches que vous pouvez effectuer avec Drush sont l'exportation/importation de configurations, la mise en cache, la mise à jour des modules contrib, la mise à jour de la base de données et bien plus encore.

Drush fonctionne bien avec Drupal 6/7/8/9 et offre les avantages des pratiques de développement modernes. Il permet de gagner du temps de développement, à la fois lors de la migration des modules Drupal existants et lors de la création de nouveaux, augmentant ainsi la productivité. Apprenez à créer vos propres commandes Drush personnalisées dans cet article.

Installation de la console Drupal

La console Drupal peut être installée via différentes méthodes telles que composer, curl, phar, etc. Voici un exemple d'installation à l'aide de composer :

Installer globalement via composer

 composer global require drupal/console

Installation spécifique au site

1. Accédez au site Drupal dans la CLI :

 cd /path/to/drupal_site

2. Exécutez la commande composer require :

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

Installation de Drush

Drush peut être installé par diverses méthodes, telles que composer, curl ou phar. Voici un exemple d'installation à l'aide de composer :

Installer globalement via composer

 composer global require drush/drush

Installation spécifique au site

1. Accédez au site Drupal dans la CLI :

 cd /path/to/drupal_site

2. Exécutez la commande composer require :

 composer require drush/drush

Commandes et utilisation de la console Drupal

Découvrez quelques-unes des commandes de la console Drupal les plus populaires et les plus utiles et quand elles peuvent être utilisées.

  • Commande de débogage Drupal

  • Pour identifier les points d'arrêt en travaillant sur des thèmes :
 drupal debug:breakpoints {theme_name}

Exemple : drupal debug:breakpoints bartik

  • Pour trouver facilement la classe et le nom du service lorsque vous travaillez avec des services :
 drupal debug:config:settings
  • Pour identifier le point d'échec lorsque vous avez des blocs cassés douloureux :
 drupal debug:plugin block broken
  • Générer des modules personnalisés

Créez des modules personnalisés en une minute à l'aide de cette commande :

 drupal generate:module \ --module="modulename" \ --machine-name="modulename" \ --module-path="/modules/custom" \ --description="My Awesome Module" \ --core="8.x" \ --package="Custom" \ --module-file \ --composer \ --test \ --twigtemplate
  • Générer un formulaire personnalisé

Les exigences de formulaires personnalisés sont très courantes dans tous les projets. Créer facilement un formulaire personnalisé avec cette commande :

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Générer un formulaire de configuration

Comme pour les formulaires personnalisés, nous avons également besoin de formulaires configurés par l'administrateur. Avec cette commande, vous pouvez les créer facilement :

 drupal generate:form:config \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Générer le contrôleur

Avec les formulaires personnalisés, vous aurez besoin de contrôleurs. Vous pouvez facilement créer des contrôleurs personnalisés avec cette commande :

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • Générer une entité personnalisée

La création d'une entité personnalisée ne doit pas nécessairement prendre beaucoup de temps. Avec cette commande, vous pouvez la créer rapidement et facilement :

 drupal generate:entity:content \ --module="modulename" \ --entity-class="DefaultEntity" \ --entity-name="default_entity" \ --base-path="/admin/structure" \ --label="Default entity" \ --is-translatable \ --revisionable --has-forms
  • Générer un service personnalisé

Cette commande vous aide à créer des services personnalisés :

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Créer du contenu comme utilisateur : créer

Pour créer un utilisateur à partir du back-end, vous n'avez pas besoin d'ouvrir le navigateur et de vous connecter avec l'administrateur, puis de créer un compte. Utilisez simplement cette commande pour créer un utilisateur en un tournemain :

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Générer un plugin comme un bloc

Drupal Console est également capable de générer de nombreux plugins comme des blocs. Voici un exemple de création d'un bloc personnalisé :

 drupal generate:plugin:block \ --module="modulename" \ --class="DefaultBlock" \ --label="Default block" \ --plugin- \ --theme-region="header" \ --inputs='"name":"inputtext", "type":"text_format", "label":"InputText", "options":"", "description":"Just an input text", "maxlength":"", "size":"", "default_value":"", "weight":"0", "fieldset":""'

Pour plus de commandes et d'utilisation de la console Drupal, consultez ces commandes disponibles.

Commandes Drush les plus populaires

drush cr Pour reconstruire le cache Drupal
drush cim Pour importer tous les fichiers de configuration
drush cex Pour exporter des fichiers de configuration
drush uli Pour vous connecter à l'aide de l'URL de connexion unique
drush fr {module_name} Active n'importe quel module personnalisé ou contrib ou core
drush pmu {module_name} Désactive et désinstalle n'importe quel module
drush pm: liste Répertorie tous les modules avec le package, le nom du module, la version et l'état
drush updb Pour mettre à jour la base de données après la mise à niveau
chien de garde drush : liste (ws) Répertorie tous les messages de surveillance
chien de garde drush : queue (poids) Messages de surveillance de queue continus
chien de garde drush:tail --type=php Messages de chien de garde de queue continue avec un type de gravité particulier

Quelques commandes plus cool de Drush

état de drush Fournit un aperçu de l'installation actuelle de Drupal
drush générer Comme pour Drupal Console, la commande drush generate aide à générer des entités, des plugins et plus encore
drush pm:sécurité Pour vérifier le package Drupal composer pour les mises à jour de sécurité
migration drush:état Répertorie toutes les migrations avec l'état actuel
utilisateur drush : mot de passe {nom d'utilisateur} {mot de passe} Définit le mot de passe de l'utilisateur
utilisateur drush:bloquer Aide à bloquer l'utilisateur
utilisateur drush:rôle:ajouter Aide à ajouter des rôles d'utilisateur
drush vidage sql Exporte la base de données Drupal au format SQL à l'aide de mysqldump ou équivalent.