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
Ajouter un commentaire