Acelerando o desenvolvimento do Drupal com o Drupal Console e Drush

Publicados: 2022-02-22

Escrevemos extensivamente (estamos nessa coisa) sobre como o Drupal 8 não apenas modernizou as experiências digitais para o usuário, mas também facilitou o trabalho de desenvolvimento para os desenvolvedores do Drupal. Neste artigo, discutiremos duas dessas ferramentas de utilitário Drupal 8/9 que simplificaram e melhoraram enormemente a maneira como você trabalha com código, módulos e instalações Drupal - Drupal Console e Drush.

Console Drupal

O que é o Console Drupal

Desde o avanço do Drupal 8, tornou-se necessário adicionar muito código clichê para construir um novo módulo. Claro, você pode simplesmente copiar e colar o código, mas fazer isso repetidamente pode abrir portas para muitos erros. Tudo bem. Somos humanos. Felizmente, temos o console Drupal - um conjunto de ferramentas que você executa em uma CLI (Command Line Interface) que permite gerar automaticamente código clichê. Ele aproveita o Symfony Console e outros componentes de terceiros para gerar a maior parte do código necessário para construir um módulo Drupal 8/9.

O que é Drush

Drush (Drupal + Shell) é a ferramenta CLI original para Drupal. Ele permite que você crie novos sites Drupal com facilidade e ajuda a otimizar tarefas administrativas e de desenvolvimento. Drush vem com muitos comandos fáceis de implementar que permitem que você interaja com suas instalações, temas, módulos e muito mais do Drupal. Algumas das outras tarefas que você pode realizar com o Drush são exportar/importar configurações, cache, atualização de módulos contrib, atualização do banco de dados e muito mais.

Drush funciona bem com Drupal 6/7/8/9 e oferece vantagens de práticas de desenvolvimento modernas. Ele ajuda a economizar tempo de desenvolvimento, tanto durante a migração de módulos Drupal existentes quanto durante a criação de novos, aumentando assim a produtividade. Saiba como criar seus próprios comandos Drush personalizados neste artigo.

Instalando o Drupal Console

O console Drupal pode ser instalado através de vários métodos como composer, curl, phar etc. Aqui está um exemplo de instalação usando o composer:

Instale globalmente via compositor

 composer global require drupal/console

Instalação específica do local

1. Navegue ao site Drupal na CLI:

 cd /path/to/drupal_site

2. Execute o comando composer require:

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

Instalando Drush

Drush pode ser instalado através de vários métodos, como composer, curl ou phar. Aqui está um exemplo de instalação usando o compositor:

Instale globalmente via compositor

 composer global require drush/drush

Instalação específica do local

1. Navegue ao site Drupal na CLI:

 cd /path/to/drupal_site

2. Execute o comando composer require:

 composer require drush/drush

Comandos e uso do console Drupal

Confira alguns dos comandos mais populares e úteis do Drupal Console e quando eles podem ser usados.

  • Comando de depuração do Drupal

  • Para identificar os pontos de interrupção ao trabalhar em temas:
 drupal debug:breakpoints {theme_name}

Exemplo: drupal debug:breakpoints bartik

  • Para encontrar facilmente a classe e o nome do serviço ao trabalhar com serviços:
 drupal debug:config:settings
  • Para identificar o ponto de falha quando você tem blocos quebrados dolorosos:
 drupal debug:plugin block broken
  • Gerar módulos personalizados

Crie módulos personalizados em um 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
  • Gerar formulário personalizado

Os requisitos de formulários personalizados são muito comuns em todos os projetos. Criando formulário personalizado facilmente com este comando:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Gerar formulário de configuração

Assim como os formulários personalizados, também exigimos formulários configurados pelo administrador. Com este comando você pode criá-los facilmente:

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

Com formulários personalizados, você precisará de controladores. Você pode criar facilmente controladores personalizados com este comando:

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

Criar uma entidade personalizada não precisa ser demorado, com este comando você pode criá-la de forma rápida e fácil:

 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
  • Gerar serviço personalizado

Este comando ajuda você a criar serviços personalizados:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Criar conteúdo como usuário:criar

Para criar um usuário a partir do back-end, você não precisa abrir o navegador e fazer login com admin e depois criar uma conta. Basta usar este comando para criar um usuário em um instante:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Gerar Plugin como bloco

O Drupal Console também é capaz de gerar muitos plugins como blocos. Aqui está um exemplo de criação de um bloco 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 mais comandos e uso do console Drupal, verifique estes comandos disponíveis.

Comandos Drush mais populares

drush cr Para reconstruir o cache do Drupal
drush cim Para importar todos os arquivos de configuração
drush cex Para exportar arquivos de configuração
drush uli Para fazer login usando o URL de login único
drush em {module_name} Habilita qualquer módulo customizado ou contrib ou core
drush pmu {module_name} Desativa e desinstala qualquer módulo
drush pm:list Lista todos os módulos com o pacote, nome do módulo, versão e status
drush updb Para atualizar o banco de dados após a atualização
drush watchdog:list(ws) Lista todas as mensagens de watchdog
Drush watchdog:tail(wt) Mensagens de watchdog de cauda contínuas
drush watchdog:tail --type=php Mensagens de watchdog de cauda contínuas com tipo de gravidade específico

Mais alguns comandos legais do Drush

estado de drush Fornece uma visão geral da instalação atual do Drupal
drush gerar Assim como o Drupal Console, o comando drush generate ajuda a gerar entidades, plugins e muito mais
drush pm: segurança Para verificar o pacote do compositor Drupal para atualizações de segurança
drush migrar:status Lista todas as migrações com status atual
drush usuário:senha {username} {password} Define a senha do usuário
drush usuário:bloquear Ajuda a bloquear o usuário
drush usuário: papel: adicionar Ajuda a adicionar funções de usuário
drush sql-dump Exporta o banco de dados Drupal como SQL usando mysqldump ou equivalente.