Accelerare lo sviluppo di Drupal con Drupal Console e Drush

Pubblicato: 2022-02-22

Abbiamo scritto ampiamente (ci stiamo occupando di questa roba) su come Drupal 8 non ha solo modernizzato le esperienze digitali per l'utente, ma ha anche semplificato il lavoro di sviluppo per gli sviluppatori Drupal. In questo articolo discuteremo di due strumenti di utilità di Drupal 8/9 che hanno notevolmente semplificato e migliorato il modo in cui lavori con il codice, i moduli e le installazioni Drupal: Drupal Console e Drush.

Console Drupale

Cos'è Drupal Console

Dall'avanzamento di Drupal 8, è diventato necessario aggiungere molto codice standard per costruire un nuovo modulo. Naturalmente, puoi semplicemente copiare e incollare il codice, ma farlo ripetutamente potrebbe aprire le porte a molti errori. Va bene. Siamo umani. Fortunatamente, abbiamo la console Drupal, una suite di strumenti che esegui su una CLI (Command Line Interface) che ti consente di generare automaticamente codice standard. Sfrutta Symfony Console e altri componenti di terze parti per generare la maggior parte del codice necessario per costruire un modulo Drupal 8/9.

Cos'è Drush

Drush (Drupal + Shell) è lo strumento CLI originale per Drupal. Ti consente di creare facilmente nuovi siti Web Drupal e ti aiuta a semplificare lo sviluppo e le attività amministrative. Drush viene fornito con molti comandi facili da implementare che ti consentono di interagire con le tue installazioni, temi, moduli e altro di Drupal. Alcune delle altre attività che puoi eseguire con Drush sono l'esportazione/importazione di configurazioni, la memorizzazione nella cache, l'aggiornamento dei moduli contrib, l'aggiornamento del database e molto altro.

Drush funziona bene con Drupal 6/7/8/9 e offre i vantaggi delle moderne pratiche di sviluppo. Aiuta a risparmiare tempo di sviluppo, sia durante la migrazione dei moduli Drupal esistenti sia durante la creazione di nuovi, aumentando così la produttività. Scopri come creare i tuoi comandi Drush personalizzati in questo articolo.

Installazione della console Drupal

La console Drupal può essere installata attraverso vari metodi come composer, curl, phar ecc. Ecco un esempio di installazione utilizzando composer:

Installa a livello globale tramite il compositore

 composer global require drupal/console

Installazione specifica del sito

1. Passare al sito Drupal nella CLI:

 cd /path/to/drupal_site

2. Esegui il compositore richiede il comando:

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

Installazione di Drush

Drush può essere installato con vari metodi, come compositore, curl o phar. Ecco un esempio di installazione utilizzando il compositore:

Installa a livello globale tramite il compositore

 composer global require drush/drush

Installazione specifica del sito

1. Passare al sito Drupal nella CLI:

 cd /path/to/drupal_site

2. Esegui il compositore richiede il comando:

 composer require drush/drush

Comandi e utilizzo della console Drupal

Scopri alcuni dei comandi di Drupal Console più popolari e utili e quando possono essere utilizzati.

  • Comando di debug di Drupal

  • Per identificare i punti di interruzione mentre si lavora sui temi:
 drupal debug:breakpoints {theme_name}

Esempio: drupal debug:breakpoints bartik

  • Per trovare facilmente la classe e il nome del servizio quando si lavora con i servizi:
 drupal debug:config:settings
  • Per identificare il punto di errore quando hai blocchi rotti dolorosi:
 drupal debug:plugin block broken
  • Genera moduli personalizzati

Crea moduli personalizzati in un minuto usando questo 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
  • Genera modulo personalizzato

I requisiti dei moduli personalizzati sono molto comuni tra i progetti. Creazione di moduli personalizzati facilmente con questo comando:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Genera modulo di configurazione

Come per i moduli personalizzati, richiediamo anche moduli configurati dall'amministratore. Con questo comando puoi crearli facilmente:

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

Con i moduli personalizzati avrai bisogno di controller. Puoi facilmente creare controller personalizzati con questo comando:

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

La creazione di un'entità personalizzata non deve richiedere molto tempo, con questo comando puoi crearla in modo rapido e semplice:

 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
  • Genera servizio personalizzato

Questo comando ti aiuta a creare servizi personalizzati:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Crea contenuto come utente:crea

Per creare un utente dal back-end non è necessario aprire il browser e accedere con admin e quindi creare un account. Usa semplicemente questo comando per creare un utente in un batter d'occhio:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Genera Plugin come un blocco

Drupal Console è anche in grado di generare molti plugin come i blocchi. Ecco un esempio di creazione di un blocco personalizzato:

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

Per ulteriori comandi e utilizzo della console Drupal, controlla questi Comandi disponibili.

Comandi Drush più popolari

cr Per ricostruire la cache di Drupal
pennello cim Per importare tutti i file di configurazione
drush cex Per esportare i file di configurazione
drush uli Per accedere utilizzando l'URL di accesso una tantum
drush en {nome_modulo} Abilita qualsiasi modulo personalizzato o contrib o core
drush pmu {nome_modulo} Disabilita e disinstalla qualsiasi modulo
drush pm: elenco Elenca tutti i moduli con il pacchetto, il nome del modulo, la versione e lo stato
drush updb Per aggiornare il database dopo l'aggiornamento
drush watchdog:list(ws) Elenca tutti i messaggi di watchdog
cane da guardia drush: coda (wt) Messaggi continui del watchdog della coda
drush watchdog:tail --type=php Messaggi di watchdog di coda continui con tipo di gravità particolare

Alcuni altri fantastici comandi di Drush

stato della spazzola Fornisce una panoramica dell'installazione Drupal corrente
generazione di drush Come per Drupal Console, il comando drush generate aiuta a generare entità, plugin e altro
pioggia pm: sicurezza Per controllare il pacchetto del compositore Drupal per gli aggiornamenti di sicurezza
drush migra:stato Elenca tutte le migrazioni con lo stato corrente
utente drush:password {nomeutente} {password} Imposta la password dell'utente
utente drush:blocco Aiuta a bloccare l'utente
utente drush:ruolo:aggiungi Aiuta ad aggiungere ruoli utente
drush sql-dump Esporta il database Drupal come SQL usando mysqldump o equivalente.