Accélérer le développement Drupal avec Drupal Console et Drush
Publié: 2022-02-22Nous 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.

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. |