Acelerar el desarrollo de Drupal con Drupal Console y Drush

Publicado: 2022-02-22

Hemos escrito mucho (estamos en esto) sobre cómo Drupal 8 no solo ha modernizado las experiencias digitales para el usuario, sino que también ha facilitado el trabajo de desarrollo para los desarrolladores de Drupal. En este artículo, analizaremos dos herramientas de utilidad de Drupal 8/9 que han simplificado y mejorado enormemente la forma en que trabaja con el código, los módulos y las instalaciones de Drupal: Drupal Console y Drush.

Consola Drupal

¿Qué es la Consola Drupal?

Desde el avance de Drupal 8, se ha vuelto necesario agregar una gran cantidad de código repetitivo para construir un nuevo módulo. Por supuesto, puede simplemente copiar y pegar el código, pero hacerlo repetidamente puede abrir las puertas a muchos errores. Está bien. somos humanos Afortunadamente, tenemos la consola Drupal, un conjunto de herramientas que ejecuta en una CLI (interfaz de línea de comandos) que le permite generar automáticamente código repetitivo. Aprovecha Symfony Console y otros componentes de terceros para generar la mayor parte del código necesario para construir un módulo Drupal 8/9.

que es drush

Drush (Drupal + Shell) es la herramienta CLI original para Drupal. Le permite crear nuevos sitios web de Drupal fácilmente y lo ayuda a optimizar las tareas administrativas y de desarrollo. Drush viene con muchos comandos fáciles de implementar que le permiten interactuar con sus instalaciones, temas, módulos y más de Drupal. Algunas de las otras tareas que puede realizar con Drush son exportar/importar configuraciones, almacenar en caché, actualizar módulos de contribución, actualizar la base de datos y mucho más.

Drush funciona bien con Drupal 6/7/8/9 y ofrece las ventajas de las prácticas de desarrollo modernas. Ayuda a ahorrar tiempo de desarrollo, tanto durante la migración de los módulos de Drupal existentes como durante la creación de otros nuevos, lo que aumenta la productividad. Aprenda a crear sus propios comandos de Drush personalizados en este artículo.

Instalación de la consola Drupal

La consola Drupal se puede instalar a través de varios métodos como composer, curl, phar, etc. Aquí hay un ejemplo de cómo instalarlo usando composer:

Instalar globalmente a través de composer

 composer global require drupal/console

Instalación específica del sitio

1. Navegue al sitio de Drupal en CLI:

 cd /path/to/drupal_site

2. Ejecute el comando composer require:

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

Instalación de Drush

Drush se puede instalar a través de varios métodos, como composer, curl o phar. Aquí hay un ejemplo de instalación usando Composer:

Instalar globalmente a través de composer

 composer global require drush/drush

Instalación específica del sitio

1. Navegue al sitio de Drupal en CLI:

 cd /path/to/drupal_site

2. Ejecute el comando composer require:

 composer require drush/drush

Comandos y uso de la consola de Drupal

Consulte algunos de los comandos de Drupal Console más populares y útiles y cuándo se pueden usar.

  • Comando de depuración de Drupal

  • Para identificar los puntos de interrupción mientras trabaja en temas:
 drupal debug:breakpoints {theme_name}

Ejemplo: depuración de drupal: puntos de interrupción bartik

  • Para encontrar fácilmente la clase y el nombre del servicio cuando se trabaja con servicios:
 drupal debug:config:settings
  • Para identificar el punto de falla cuando tiene bloques rotos dolorosos:
 drupal debug:plugin block broken
  • Generar módulos personalizados

Cree módulos personalizados en un minuto usando este comando:

 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
  • Generar formulario personalizado

Los requisitos de formularios personalizados son muy comunes en todos los proyectos. Crear formulario personalizado fácilmente con este comando:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Generar formulario de configuración

Al igual que los formularios personalizados, también requerimos formularios configurados por el administrador. Con este comando puedes crearlos fácilmente:

 drupal generate:form:config \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Generar controlador

Con formularios personalizados necesitará controladores. Puede crear fácilmente controladores personalizados con este comando:

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • Generar entidad personalizada

Crear una entidad personalizada no tiene por qué llevar mucho tiempo. Con este comando, puede crearla rápida y fácilmente:

 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
  • Generar Servicio Personalizado

Este comando lo ayuda a crear servicios personalizados:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Crear contenido como usuario: crear

Para crear un usuario desde el back-end, no necesita abrir el navegador e iniciar sesión con el administrador y luego crear una cuenta. Simplemente use este comando para crear un usuario en un santiamén:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Generar complemento como bloque

Drupal Console también es capaz de generar muchos complementos como bloques. Aquí hay un ejemplo de cómo crear un bloque personalizado:

 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":""'

Para obtener más comandos y uso de la consola de Drupal, consulte estos comandos disponibles.

Comandos de Drush más populares

drush cr Para reconstruir la caché de Drupal
drush cim Para importar todos los archivos de configuración
drush cex Para exportar archivos de configuración
drush uli Para iniciar sesión usando la URL de inicio de sesión único
drush es {module_name} Habilita cualquier módulo, ya sea personalizado, contrib o core
drush pmu {nombre_del_módulo} Deshabilita y desinstala cualquier módulo
drush pm: lista Enumera todos los módulos con el paquete, el nombre del módulo, la versión y el estado
drush updb Para actualizar la base de datos después de la actualización
perro guardián drush: lista (ws) Enumera todos los mensajes de vigilancia
perro guardián drush: cola (peso) Mensajes continuos de vigilancia de la cola
perro guardián drush: cola --tipo = php Mensajes continuos de vigilancia de la cola con un tipo de gravedad particular

Algunos comandos de Drush más geniales

estado de drush Proporciona una descripción general de la instalación actual de Drupal.
drush generar Al igual que Drupal Console, el comando de generación de drush ayuda a generar entidades, complementos y más
drush pm:seguridad Para verificar el paquete Drupal composer para actualizaciones de seguridad
migrar drush: estado Enumera todas las migraciones con el estado actual
usuario de drush: contraseña {nombre de usuario} {contraseña} Establece la contraseña de usuario
usuario de drush: bloque Ayuda a bloquear al usuario.
drush usuario:rol:agregar Ayuda a agregar roles de usuario
volcado de sql de drush Exporta la base de datos Drupal como SQL usando mysqldump o equivalente.