Voici un exemple rapide de commande drush appelant une méthode d'un service avec une option lors de l'appel.
À noter : Drupal\mon_module\Service\Resalys est un service existant, je souhaite utiliser la méthode syncResalys de ce service qui accepte un paramètre optionnel : $force
Déclaration de la commande
modules/mon_module/drush.services.yml
services:
mon_module.drush.resalys: # clé du fichier de commande, à définir vous même
class: Drupal\mon_module\Command\ResalysCommand # Namespace de la classe contenant la commande
arguments:
- '@mon_module.resalys' # Service à injecter dans notre commande
tags:
- { name: drush.command }
Définition de la commande
modules/mon_module/src/Command/ResalysCommand.php
<?php
namespace Drupal\mon_module\Command;
use Drupal\mon_module\Service\Resalys;
use Drush\Commands\DrushCommands;
class ResalysCommand extends DrushCommands {
protected $resalys;
public function __construct(Resalys $resalys) {
parent::__construct();
$this->resalys = $resalys;
}
/**
* Sync resalys cache
*
* @command resalys:sync
* @usage drush resalys:sync
* @usage drush resalys:sync --force
*
* @param int[] $options
*/
public function sync($options = ['force' => FALSE]) {
$force = (bool) $options['force'];
$this->resalys->syncResalys($force);
}
}
Utilisation
drush resalys:sync
drush resalys:sync --force
Contenus en rapport
Il est possible via drush d’exécuter un script php et de profiter de toute l'API de drupal pour effectuer des traitements (création / suppression de contenu, modification, import de traductions...)
Drush est un outil indispensable pour développer sous drupal, il permet de contrôler son instance de site via le terminal pour les taches quotidiennes sur un site : téléchargement, activation de modules, vidage de cache, mise à jours de modules ou du core... Une fois que l'on y a goûté, on ne peut plus s'en passer.
Ajouter un commentaire