.

Quels outils de développement Drupal valent la peine d'être utilisés ? 7 solutions pratiques

Lors de la création de sites Web sur Drupal, en tant que développeurs, nous devrions tenter de simplifier notre travail. La gestion des modules, des utilisateurs, la génération de code - tous ces processus peuvent être automatisés et réalisés avec des commandes uniques. Dans cet article, nous examinerons les outils disponibles et les discuterons, en donnant des exemples spécifiques d'utilisation.

1. Drupal Console

Drupal Console est une puissante interface de ligne de commande. Il est utilisé pour générer du code modèle et pour maintenir et déboguer Drupal. La dernière version de cet outil est la v1.9.8, sortie le 28 novembre 2021.

Pour ajouter Drupal Console à notre projet, il suffit d'utiliser une commande:

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

Ensuite, nous pouvons utiliser diverses commandes fournies par Drupal Console. Nous fournissons quelques exemples ci-dessous.

Génération de module:

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ération d'entité:

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ération de service:

drupal generate:service  \
  --module="modulename"  \
  --name="modulename.default"  \
  --class="DefaultService"  \
  --interface  \
  --interface-name="InterfaceName"  \
  --path-service="/modules/custom/modulename/src/"

Création d'utilisateur:

drupal user:create  username password  \
  --roles='authenticated'  \
  --email="[email protected]"  \
  --status="1"

Comme nous pouvons le voir, Drupal Console nous offre de nombreuses possibilités. Une autre option intéressante que cet outil de ligne de commande nous fournit est la possibilité de lancer un serveur PHP local pour tester notre site web.

$ drupal server

Cette commande lancera un serveur local sur le port 8088 pour nous.

2. Exemples pour les développeurs

Le projet Exemples pour les développeurs est une excellente collection d'exemples de comment nous pouvons écrire nos propres modules dans Drupal. Nous avons à notre disposition 33 modules différents, allant de simples blocs, en passant par divers types de formulaires, jusqu'à des contrôleurs avec support API REST. Nous trouverons probablement tout ce dont nous avons besoin. Ce module nous permettra d'apprendre de nouvelles choses et de travailler plus rapidement.

3. Devel

Le module Devel comprend des fonctions supplémentaires et des pages d'aide pour les développeurs et les administrateurs. Il nous fournit des blocs et des barres d'outils pour un accès rapide et des informations pour développeurs. Nous pouvons l'utiliser pour « simuler » un autre utilisateur. C'est une fonctionnalité très utile, surtout lorsque nous devons tester les rôles et les permissions dans Drupal. Devel nous fournit des fonctionnalités qui nous aident à déboguer. Et pour couronner le tout, nous pouvons l'utiliser pour générer du contenu de test.

Pour installer ce module, nous utilisons Composer.

composer require --dev drupal/devel

4. Poids

Il arrive parfois dans notre projet que nous utilisions des modules qui utilisent les mêmes hooks. Par défaut, Drupal ne permet pas de choisir l'ordre d'exécution des modules. Cependant, nous pouvons contourner cette limitation de trois manières.

Méthode 1 – définir le poids du module Drupal lors de son installation

Dans le fichier install de notre module, nous pouvons ajouter HOOK_install et l'utiliser pour définir le poids du module.

Drupal 9 fournit une fonctionnalité intégrée pour traiter ce problème:

function your_module_name_install() {
  module_set_weight('[your_module_name]', [your_preferred_weight]);
}

C'est un peu plus compliqué dans Drupal 7, car nous devons changer ce champ dans la base de données par nous-mêmes:

function your_module_name_install() {
  db_update('system')
    ->fields(array('weight' => your_preferred_weight))
    ->condition('name', '[your_module_name]', '=')
    ->execute();
}

Méthode 2 – Changer le poids dans core.extension.yml

Si nous utilisons des configurations dans notre projet, nous pouvons changer le poids de notre module dans le fichier core.extension.yml après les avoir exportées. Le poids est montré sous forme de numéro après le nom du module. Plus le poids est élevé, plus tôt les méthodes du module seront exécutées.

Méthode 3 – utiliser Modules weight

Le module poids des modules Drupal ajoutera une configuration facile d'utilisation des poids des modules. Lorsque nous nous rendons sur la page de configuration (/admin/config/system/modules-weight/configuration), nous verrons cela:

Paramétrage des poids des modules dans un outil de développement Drupal – Poids des modules

Ici, nous pouvons facilement définir les poids de nos modules.

5. Settings.php et services.yml

Nous pouvons trouver ces deux fichiers dans le dossier sites de notre installation Drupal. Avec juste quelques lignes, nous pouvons grandement faciliter le développement logiciel. Il est judicieux de créer un fichier settings.dev.php et d'y mettre toutes les modifications. Pendant le développement, nous pouvons l'inclure dans le fichier principal settings.php et le supprimer lorsque nous téléchargeons notre site web sur le serveur.

Une option encore plus pratique est d'utiliser une variable d'environnement comme ENV et de la définir sur "dev". Ensuite, nous vérifions dans settings.php s'il existe un fichier settings.$env.php. Si c'est le cas, nous l'incluons.

.
$env = getenv("D_ENV");

if (file_exists($app_root . '/' . $site_path . '/settings.' . $env . '.php')) {
  include $app_root . '/' . $site_path . '/settings.' . $env . '.php';
}

Nous pouvons garder toutes nos modifications de support pour le développement dans le fichier settings.dev.php.

Que pouvons-nous faire exactement ici?

1. Activer l'affichage des erreurs en plus du message indiquant que notre site a rencontré un problème.

$config['system.logging']['error_level'] = 'verbose';

2. Désactiver l'agrégation CSS et JS – quelque chose que nous oublions souvent lors de la modification des styles ou des scripts JS.

$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;

3. Désactiver le cache de rendu:

$settings['cache']['bins']['render'] = 'cache.backend.null';

4. Inclure le fichier development.services.yml.

$settings['container_yamls'][] = $app_root . '/' . $site_path . '/development.services.yml';

Le contenu du dernier fichier peut ressembler à celui que nous montrons ci-dessous.

parameters:
  twig.config:
    debug: true
    auto_reload: null
    cache: false
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

Nous activons le débogage Twig. Ce sont des commentaires utiles dans la structure HTML qui nous permettront de trouver plus facilement un fichier de modèle ou de créer des hooks. De plus, nous désactivons le cache. Aussi, nous ajoutons le service cache.backend.null, que nous avons utilisé plus tôt pour désactiver le cache de rendu.

6. Lando

C'est un outil qui facilite le développement local de notre site. Il nous permet de faire tourner littéralement n'importe quoi et est basé sur Docker. Nous avons une interface de ligne de commande à notre disposition, qui nous permet de gérer facilement nos installations. Pour configurer une installation Drupal localement, il suffit de quelques commandes.

Tout d'abord, nous créons un projet Drupal en utilisant Composer.

composer create-project drupal/recommended-project lando-demo

Ensuite, nous allons dans le répertoire créé et exécutons la commande:

lando init
  • Choisissez drupal9 comme recipe,
  • nommez votre webroot web,
  • et ensuite, nommez votre projet.

Après ce processus, un fichier .lando.yml sera créé. Nous y trouverons beaucoup d'informations différentes, comme le nom de notre projet, quels services nous utilisons (initialement, cela inclura appserver et database), les adresses de notre application, la version PHP, ou les données d'accès pour notre base de données.

Ensuite, nous exécutons la commande

lando start

Maintenant, nous pouvons aller à l'adresse donnée dans .lando.yml et terminer l'installation de Drupal.

7. Drush

Un outil que tout développeur Drupal devrait connaître. Drush est avec nous depuis Drupal 4.7 et est toujours développé. Au moment de la rédaction, la dernière version est 11.0.8, et elle est sortie le 9 avril 2022. Drush nous permet de gérer notre site en important et exportant les configurations, en mettant à jour la base de données ou en nettoyant le cache. Les versions plus récentes de cet outil nous permettent également de générer du code. Passons en revue quelques commandes utiles:

Nettoyage du cache

drush cr

Importation de configuration

drush cim

Exportation de configuration

drush cex

Création d'un lien de connexion unique

drush uli

Activation d'un module

drush en module_name

Désactivation et suppression d'un module

drush pmu module_name

Mise à jour de la base de données

drush updb

Vérification du journal (module dblog)

drush ws

Pour ce qui est de la génération de code, nous avons beaucoup d'options parmi lesquelles choisir. Nous recommandons d'utiliser la commande

drush generate

et de trouver l'option qui nous intéresse le plus

Outils de développement Drupal - résumé

Nous avons passé en revue certains outils intéressants que nous pouvons utiliser lors du travail avec Drupal. Comme nous pouvons le voir, le développement Drupal peut être assez rapide et agréable lorsque nous connaissons les outils qui facilitent le travail. Il est bon de prendre un peu de temps pour explorer ces solutions. Cet investissement se rentabilisera rapidement!

3. Best practices for software development teams