Acelerar el desarrollo de Drupal con Drupal Console y Drush
Publicado: 2022-02-22Hemos 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.
¿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. |