Beschleunigung der Drupal-Entwicklung mit Drupal Console und Drush
Veröffentlicht: 2022-02-22Wir 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.
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. |