Beschleunigung der Drupal-Entwicklung mit Drupal Console und Drush

Veröffentlicht: 2022-02-22

Wir haben ausführlich darüber geschrieben (wir beschäftigen uns mit diesen Dingen), wie Drupal 8 nicht nur die digitalen Erfahrungen für den Benutzer modernisiert, sondern auch die Entwicklungsarbeit für Drupal-Entwickler erleichtert hat. In diesem Artikel werden wir zwei solcher Dienstprogramme für Drupal 8/9 besprechen, die die Art und Weise, wie Sie mit Drupal-Code, -Modulen und -Installationen arbeiten, massiv vereinfacht und verbessert haben – Drupal Console und Drush.

Drupal-Konsole

Was ist die Drupal-Konsole

Seit der Weiterentwicklung von Drupal 8 ist es notwendig geworden, eine Menge Boilerplate-Code hinzuzufügen, um ein neues Modul zu erstellen. Natürlich können Sie den Code einfach kopieren und einfügen, aber wenn Sie dies wiederholt tun, können viele Fehler auftreten. Es ist in Ordnung. Wir sind Menschen. Glücklicherweise haben wir die Drupal-Konsole – eine Reihe von Tools, die Sie auf einer CLI (Command Line Interface) ausführen, mit der Sie automatisch Boilerplate-Code generieren können. Es nutzt Symfony Console und andere Komponenten von Drittanbietern, um den größten Teil des Codes zu generieren, der zum Erstellen eines Drupal 8/9-Moduls benötigt wird.

Was ist Drush

Drush (Drupal + Shell) ist das ursprüngliche CLI-Tool für Drupal. Damit können Sie ganz einfach neue Drupal-Websites erstellen und Entwicklungs- und Verwaltungsaufgaben optimieren. Drush wird mit vielen einfach zu implementierenden Befehlen geliefert, mit denen Sie mit Ihren Drupal-Installationen, Themen, Modulen und mehr interagieren können. Einige der anderen Aufgaben, die Sie mit Drush ausführen können, sind das Exportieren/Importieren von Konfigurationen, das Caching, das Aktualisieren von Contrib-Modulen, das Aktualisieren der Datenbank und vieles mehr.

Drush funktioniert gut mit Drupal 6/7/8/9 und bietet Vorteile moderner Entwicklungspraktiken. Es hilft, Entwicklungszeit zu sparen, sowohl bei der Migration bestehender Drupal-Module als auch bei der Erstellung neuer Module, wodurch die Produktivität gesteigert wird. Erfahren Sie in diesem Artikel, wie Sie Ihre eigenen benutzerdefinierten Drush-Befehle erstellen.

Installieren der Drupal-Konsole

Die Drupal-Konsole kann mit verschiedenen Methoden wie Composer, Curl, Phar usw. installiert werden. Hier ist ein Beispiel für die Installation mit Composer:

Global über Composer installieren

 composer global require drupal/console

Standortspezifische Installation

1. Navigieren Sie in der CLI zur Drupal-Site:

 cd /path/to/drupal_site

2. Composer require-Befehl ausführen:

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

Drush installieren

Drush kann auch über verschiedene Methoden wie Composer, Curl oder Phar installiert werden. Hier ist ein Beispiel für die Installation mit Composer:

Global über Composer installieren

 composer global require drush/drush

Standortspezifische Installation

1. Navigieren Sie in der CLI zur Drupal-Site:

 cd /path/to/drupal_site

2. Composer require-Befehl ausführen:

 composer require drush/drush

Befehle und Verwendung der Drupal-Konsole

Informieren Sie sich über einige der beliebtesten und hilfreichsten Befehle der Drupal-Konsole und wann sie verwendet werden können.

  • Drupal-Debug-Befehl

  • So identifizieren Sie die Haltepunkte beim Arbeiten an Themen:
 drupal debug:breakpoints {theme_name}

Beispiel: drupal debug:breakpoints bartik

  • So finden Sie die Klasse und den Namen des Dienstes beim Arbeiten mit Diensten einfach:
 drupal debug:config:settings
  • Um den Fehlerpunkt zu identifizieren, wenn Sie schmerzhafte gebrochene Blockaden haben:
 drupal debug:plugin block broken
  • Generieren Sie benutzerdefinierte Module

Erstellen Sie benutzerdefinierte Module innerhalb einer Minute mit diesem Befehl:

 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
  • Benutzerdefiniertes Formular generieren

Benutzerdefinierte Formularanforderungen sind projektübergreifend sehr verbreitet. Einfaches Erstellen eines benutzerdefinierten Formulars mit diesem Befehl:

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

Wie benutzerdefinierte Formulare benötigen wir auch vom Administrator konfigurierte Formulare. Mit diesem Befehl können Sie sie einfach erstellen:

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

Bei benutzerdefinierten Formularen benötigen Sie Controller. Mit diesem Befehl können Sie ganz einfach benutzerdefinierte Controller erstellen:

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • Benutzerdefinierte Entität generieren

Das Erstellen einer benutzerdefinierten Entität muss nicht zeitaufwändig sein. Mit diesem Befehl können Sie sie schnell und einfach erstellen:

 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
  • Benutzerdefinierten Dienst generieren

Dieser Befehl hilft Ihnen beim Erstellen benutzerdefinierter Dienste:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Erstellen Sie Inhalte wie user:create

Um einen Benutzer vom Backend aus zu erstellen, müssen Sie nicht den Browser öffnen und sich mit admin anmelden und dann ein Konto erstellen. Verwenden Sie einfach diesen Befehl, um im Handumdrehen einen Benutzer zu erstellen:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Plugin-ähnlichen Block generieren

Drupal Console ist auch in der Lage, viele Plugins wie Blöcke zu generieren. Hier ist ein Beispiel für die Erstellung eines benutzerdefinierten Blocks:

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

Weitere Drupal-Konsolenbefehle und -nutzung finden Sie in diesen verfügbaren Befehlen.

Die beliebtesten Drush-Befehle

Drush cr Um den Drupal-Cache neu aufzubauen
Regen cim Um alle Konfigurationsdateien zu importieren
Drush cex So exportieren Sie Konfigurationsdateien
Drush uli So melden Sie sich mit der einmaligen Anmelde-URL an
drush de {module_name} Aktiviert jedes Modul, entweder benutzerdefinierte oder Contribut oder Core
drush pmu {module_name} Deaktiviert und deinstalliert alle Module
drush pm:liste Listet alle Module mit Paket, Modulname, Version und Status auf
drush updb So aktualisieren Sie die Datenbank nach dem Upgrade
drush watchdog:list(ws) Listet alle Watchdog-Meldungen auf
Drush Watchdog: Schwanz (wt) Kontinuierliche Tail-Watchdog-Meldungen
drush watchdog:tail --type=php Kontinuierliche Tail-Watchdog-Meldungen mit einem bestimmten Schweregradtyp

Ein paar weitere coole Drush-Befehle

Drush-Status Bietet einen Überblick über die aktuelle Drupal-Installation
Drush erzeugen Wie bei der Drupal-Konsole hilft der Befehl drush generate beim Generieren von Entitäten, Plugins und mehr
drush pm:Sicherheit So überprüfen Sie das Drupal Composer-Paket auf Sicherheitsupdates
drush migrieren:status Listet alle Migrationen mit aktuellem Status auf
drush Benutzer:Passwort {Benutzername} {Passwort} Legt das Benutzerkennwort fest
drush user:block Hilft, den Benutzer zu blockieren
drush Benutzer:Rolle:Hinzufügen Hilft beim Hinzufügen von Benutzerrollen
drush sql-dump Exportiert die Drupal-Datenbank als SQL unter Verwendung von mysqldump oder gleichwertig.