Acceder al contenido principal

Blog

Volver a Blog

Cómo crear un comando de Drush

04 Ene 019
DrushCommand
Avatar Fernando González

Drupal

Para empezar, es igual que un módulo custom de Drupal, ni que decir tiene que necesitamos tener instalado Drush, bien sea local o global. Y comenzamos...

Creamos un directorio con el nombre de nuestra batería de comandos custom dentro de nuestro directorio raíz de Drupal /modules/custom/nombre_bateria_comandos

Drush0

 

Necesitamos 2 archivos base para empezar, "nombre_bateria_comandos.info.yml" y drush.services.yml

Para el archivo nombre_bateria_comandos.info.yml:

drush1

name: Custom commands
type: module
description: Comandos de drush Custom
core: 8.x
package: CustomCommands

 

(Yo os adjunto un ejemplo, ajustadlo como vosotros lo necesitéis)

Para el archivo drush.services.yml:

drush2


services:
  custom_commands.commands:
    class: \Drupal\custom_commands\Commands\CustomCommands
    tags:
      - { name: drush.command }

 

Luego dentro de un directorio llamado "src" al nivel de los archivos anteriores, creamos el archivo que contendrá la clase para nuestra batería de comandos, en mi caso es "CustomCommands.php":

Drush3

<?php

namespace Drupal\custom_commands\Commands;

use Drush\Commands\DrushCommands;

/**
 * A Drush commandfile.
 *
 * In addition to this file, you need a drush.services.yml
 * in root of your module, and a composer.json file that provides the name
 * of the services file to use.
 *
 * See these files for an example of injecting Drupal services:
 *   - http://cgit.drupalcode.org/devel/tree/src/Commands/DevelCommands.php
 *   - http://cgit.drupalcode.org/devel/tree/drush.services.yml
 */
class CustomCommands extends DrushCommands {

  /**
   * Comando de ejemplo
   * Aquí ya lo que necesitéis, llamadas a BD transformaciones etc...
   *
   * @command custom-commands:mycommand
   */

  public function mycommand() {
    $this->io()->writeln("Hola soy el nuevo comando custom!!!!");
  }

}
 

Con esto ya podemos probar, si necesitamos más comandos, solo hay que replicar la estructura de la función previa y crear más funciones con su "@command" correspondiente, y listo.

solo nos queda borrar cache, activar nuestro modulo, y ejecutarlo:

Drush4

;) LISTO!!!

 

Comentarios

Añadir nuevo comentario