FFS im April - Redirects und Aliase mit Drupal 8

Seit Oktober 2013 finden nun unsere monatlichen "First Friday Sprints" statt und wir dürfen jedesmal über riesige Sprünge an Drupal 8 und dessen Umwelt der Contrib Module berichten.

Einladung zum Event: https://groups.drupal.org/node/416933

Orientierung im Dschungel

Nach einem Monat müssen sich die Teilnehmer zuerst wieder orientieren, was sich alles geändert hat und die relevanten Module erst einmal testen.

Noch sind erst wenige Drupal 8 Module auf drupal.org verfügbar. Aber bei den meisten findet man einen angefangenen Port auf github.com. In der aktuellen Phase ist die Kollaboration auf Github einfacher, da Forks und Pull Requests besser integriert sind. Sobald der Code eine gewisse Stabilität erreicht hat, wird er dann wieder auf drupal.org publiziert. Danach wird wieder konsequent mit Patches in der issue queue gearbeitet.

Start mit nötigen Anpassungen

Einige Core-Anpassungen der letzten Tage (z.B. vom Sprint an den Drupal Developer Days) bedingen updates an Contrib modulen. Bei kleinen/eigenen Modulen müssen diese Änderungen gemacht werden, damit das Modul wieder funktioniert. Viel Zeit geht dadurch aber nicht verloren und die Änderungen bieten meist Verbesserung in Übersichtlichkeit und Sauberkeit des Codes. Bei bekannten Modulen (node, comment etc.) wurden diese Änderungen mit grosser Wahrscheinlichkeit bereits angewendet. Sobald die verbleibenden 31 Beta-Blocker von Drupal Core erfolgreich gelöst sind, dürfte dies ein Ende haben - und es geht zügig vorwärts.

Bei MD Systems wurde in den letzten Wochen auch intensiv an der Portierung von weiteren Modulen gearbeitet. Sämtlichen Contrib-Ports werden durch Sascha Grossenbacher (Berdir) und Miro Dietiker (miro_dietiker) reviewed.

Am Sprint konnten wurden zahlreiche Arbeiten abgeschlossen und neue begonnen:

Redirect Module

Das Redirect Modul ist mit ~90'000 bekannten Installationen ein essenzieller Bestandteil für Drupal-Projekte. Bei einem Web-Relaunch kann man damit Nutzer von alten Links auf das neu richtige Ziel umleiten. Fehlaufrufe (404 errors) werden überwacht und zum abarbeiten aufgelistet. Aber auch im laufenden Betrieb ändern (z.B. automatisch generierte) Links manchmal. Das Redirect Modul kann diese Redirects automatisch nachführen.

Dieses Modul wurde durch Martin Micuch (Blueminds) bei MD Systems portiert. Die neue Version wurde für Drupal 8 fast komplett neu geschrieben und bringt umfassende automatisierte Tests (Unittests und Simpletests) mit. Die Modulqualität erreicht damit ein neues Niveau.

Global Redirect

Mit ~150'000 Installationen ist Global Redirect noch populärer. Ist für eine URL ein Alias vorhanden, stellt Global Redirect sicher, dass nicht weiter über den internen Pfad auf diese Website zugegriffen wird. Für gute SEO und ordentliches Link-Management ist diese Funktionalität wichtig.

Ein erster Port des Moduls wurde bereits August/September 2013 durch den Maintainer Liran Tal umgesetzt. Wiederum konnten wir mit Martin Micuch (Blueminds) das Modul fertigstellen. Die Funktionalität wurde komplettiert und auch hier die automatisierten Tests verbessert.

Ausstehend ist hier der seit 2010 offene Punkt, diese Funktionalität komplett in das Redirect Modul zu integrieren. Die Umsetzung dessen in Drupal 8 ist trivial. Es bleibt an den Maintainern, die abschliessende Entscheidung zu übernehmen.

Pathauto

Mit ~570'000 Installationen ist Pathauto das 5. meistgenutzte Modul. Das Modul ist höchst komplex und basiert auf Token.

Am Sprint konnte der Port durch Antonio Sferlazzo (Südostschweiz Medien) ein gutes Stück voran getrieben werden.

Nach einer initialen Portierung ist geplant, den etwas holprigen Code mit modernen Drupal 8 Patterns (z.B. Plugins) abzulösen und allgemein die Architektur des Moduls zu verbessern.

Bis dieses Modul einsatzbereit ist, werden aber noch unzählige Stunden Arbeit nötig sein.

Redis

Lorenz Schori (znerol) hat mit der Portierung des Caching Backends Redis begonnen. Von der Integration mit Redis als Cache versprechen wir uns massive Performance-Gewinne bei grossen Projekten, weil der Dienst native Cache-Tags unterstützt.

Ultimate Cron

Sascha Grossenbacher (Berdir) hat sich der Portierung von Ultimate Cron angenomen. Das Modul bietet granulare Kontrolle über die Häufigkeit der Ausführung der Hintergrundprozesse (Implementationen von hook_cron()) und ermöglicht bei komplexen Projekten schnellere und zuverlässigeren Cron-Jobs.

Eager to read more? Check related projects!