Drupal 8 Experience

Nachdem wir 2015 die ersten Gehversuche gemacht haben, war 2016 das erste volle Jahr, wo wir ausschließlich alle neuen Projekte mit Drupal 8 umgesetzt haben. Hier in diesem Blogartikel versuche ich eine Sicht auf unsere Erfahrungen mit der aktuellen Version von Drupal zu geben. Zunächst einmal möchte ich darauf hinweisen, dass man Drupal allgemein als ein Content Management Framework (CMF) verstehen sollte, das maßgeschneiderte Content-Management-Systeme (CMS) für Webprojekte ermöglicht. Jedes Projekt unterliegt unterschiedlichen Kundenanforderungen, die in individuelle Konzepte münden und dann dementsprechend umgesetzt werden.

Der Umstieg von Drupal 7 auf 8

Im Vergleich zu den Vorversionen brachte Drupal 8 wesentlich größere Veränderungen mit sich als je zuvor, welche sich als eine ziemliche Herausforderung herausstellte und eine dementsprechende Lernkurve mit sich brachte. Gewohnte Konzepte mussten über Bord geworfen und neue erst verstanden werden. Mangels Dokumentation am Anfang, musste man viel recherchieren und ausprobieren, um zu den gewünschten Ergebnissen zu kommen. Twig als neue leistungsstarke Template-Engine mit enorm schlankeren Templates statt Phptemplate, Symfony PHP und objektorientiertes (OOP) statt prozedurales Programmieren. Hinzu kam, dass für Drupal 8 die gewohnten Module noch nicht oder nur eingeschränkt zur Verfügung standen. Somit waren wir oft zum Experimentieren gezwungen.

Bruch der Gewohnheiten als Chance

Dieser Umstand brachte mit sich, dass wir uns die im Moment verfügbaren Module anschauten. Die gewohnte Umsetzung von Layouts in Drupal 7 mit Pagemanager, Panels sowie Panels everywhere waren bisher in Drupal 8 nur vergleichsweise eingeschränkt möglich. Dadurch waren wir gezwungen, uns nach Alternativen umzusehen und auszuprobieren. Eines dieser neuen Standardmodule in unseren Drupal-8-Projekten ist inzwischen das Paragraphs Module. Es erlaubt dem Webredakteur Reihenfolge von Inhaltskomponenten flexibel festzulegen, kombinieren und auch im nachhinein via Drag und Drop zu ändern. Die Flexibilität dieses Moduls und die Erkenntnisse aus der letztjährigen Praxis erlauben uns inzwischen sogar, bei manchen Projekten auf Page Manager sowie Panels ganz zu verzichten. Diese Module werden neben den ganz neuen aber weiterhin auf unserem Radar sein und in den kommenden Versionen wieder spannend werden.

Backend Experience

Die User Experience für die Webredakteure ist in Drupal 8 wesentlich einfacher, konsistenter und übersichtlicher geworden. Unsere Agentur legt großen Wert darauf, dass nicht nur am Frontend die User Experience funktioniert, sondern auch im Drupal Backend. Wie schon oben erwähnt arbeiten wir inzwischen stark mit dem Paragraphs Module, das in seiner Flexibilität ein enormer Gewinn ist und uns sogar neue Konzepte ermöglicht, die bisher vergleichsweise nur recht statisch funktionierten und den Webredakteuren mehr Gestaltungsspielraum in der Erstellung von Webinhalten erlaubt. Es ist auch zu erwähnen, dass das Drupal 8 Backend inzwischen die ATAG 2.0 Kriterien für Barrierefreiheit erfüllt.

View Modes

Weil Drupal 8 inzwischen ein komplettes Entity-System ist (jedes Inhaltsteil ist eine Einheit, die mit anderen Einheiten in den unterschiedlichsten Kombinationen miteinander verknüpft werden können), ist nun eine größere Flexibilität gegeben, wie man Inhalte ausgibt. Hier kommen die View Modes in Drupal 8 ins Spiel, die wir sehr intensiv nutzen. Während es im Drupal 7 nur Standardanzeigen gab und man diese nur programmatisch oder mit dem Module Entity View Modes erweitern konnte, sind sie diese jetzt fixer Bestandteil des Drupal 8 Core. Man hat damit die Möglichkeit, einen Enitity Type (wie z.b. Artikel) mit allen notwendigen Feldern zu definieren und mit View Modes dessen Darstellung im Beispiel Artikel als Teaser, Vollansicht, Box usw. in einem User Interface (UI) an unterschiedlichen Stellen genau festlegen, welche Inhalte jeweils sichtbar sind. Ähnliches ist inzwischen auch mit dem Backend Formularen mittels Form Modis möglich. Unsere Erfahrungen damit haben gezeigt, dass dass wir mit weniger Inhaltstypen wesentlich mehr und beliebiger die visuelle Darstellung gestalten können als zuvor. Diese enorme Flexibilität ist neben den Listenansichten eines der großen Stärken von Drupal.

Medienverwaltung

Ein weiteres neues Standardmodul in unseren Drupal-8-Projekten ist das Media Entity Module samt den Media Provider Modulen für Bilder, Embed Videos, Documents und einige mehr. Damit können die Medien sinnvoll definiert und referenziert werden und bilden somit endlich einen neuen Standard für die Medienverwaltung, die individuell konzipiert werden kann und Medien auf diese Weise wiederverwendbar machen. Hier sei auch zu erwähnen, dass es eine Core-Initiative gibt, wo das Media Management bald wirklich in den Drupal-Core kommt (https://www.drupal.org/about/strategic-initiatives).

Eine weitere positive Veränderung sind die Standardeinstellungen für die Bilder. Einst musste man alle notwendigen Bild-Attribute wie Alt-Text oder Title umständlich über eine eigenes Modul individuell und aufwändig setzen, so sind sie jetzt in Drupal-8 standardmässig vorhanden. Damit sind notwendige Attribute ohne großen Aufwand verfügbar und damit von Suchmaschinen erfassbar (Google ist ja der weltweit größte “blinde” User). Das erhöht die Barrierefreiheit und gleichzeitig bringt es bessere Suchmaschinenergebnisse.

Configuration Management und Composer

Eine große Änderung bedeutete das Configuration Management und das Verwalten der Modules mittels Composer, einem Package Manager für PHP in der Command Line (CLI). Da wir schon bisher mit Continous Integration (CI) via Git-Repositories arbeiteten, änderten sich hauptsächlich die Arbeitsabläufe in der Command Line. Das Exportieren von aufwändigen Konfigurationen via dem Feature Module in Drupal 7 samt Make-Files zum Re-Installieren von Projekten wurde durch Composer und den neuen Yaml-Konfigurationsdateien abgelöst und die Abläufe im Deployment beschleunigt. Die besten Erfahrungen haben wir mit Continous Deployment Cloud Hosting gemacht. Mit der Folge, dass anfallende Wartungsarbeiten schneller abgewickelt werden können.

Neuer Releasezyklus

Eine Neuerung in Drupal 8 ist das Continous Innovation Model im Releasezyklus. Damit will man neue Features in Minor Releases einführen. Ein aktuell gutes Beispiel ist das BigPipe Module, das bisher im experimentellen Status in Drupal 8.2 schon sehr gut funktionierte und mit der nächsten Version 8.3 den stabilen Status erreichen wird. Mit diesem Module wird eine bessere Performance durch schnelleres Laden von Webseiten ermöglicht. Dieses Modell der Minor Upgrades will man auch auf den nächsten Drupal 9 Major Release anwenden, damit will man die Lernkurve in Zukunft bei Major Releases flacher halten. Wobei man alten Code in den Minor Upgrades beibehält und gleichzeitig neuen Code einführt. Beim nächsten Major Release ist der Code fast identisch mit dem letzten Minor Release der Vorversion, nur wird der alte Code dann entfernt. Die aufwändigen Upgrades zwischen den Major Releases sollen dann der Vergangenheit angehören. Zukünftige Upgrades werden dadurch viel einfacher, denn es müssen nicht mehr wie bisher bei Drupal 6/7 auf Drupal 8 komplette Seiten neu gebaut werden.

Fazit

Wir sind inzwischen von Drupal 8 und den kommenden Entwicklungen sehr überzeugt. Die kürzeren Releasezyklen für neue Features geben uns die Möglichkeit, komplexen Anforderungen gerecht zu werden und gute sowie funktionale Webprojekte zu entwickeln, die sowohl am Frontend als auch im Backend funktionieren.