Montag, 21. Juli 2014

Was lange währt...

Was bringt Drupal 8?

Das Entwicklungsteam hinter dem Erfinder und Projektleiter von Drupal, Dries Buytaert entwickelt seit 2011 an Drupal 8. Inzwischen sind dieses Jahr bereits einige Alpha-Versionen erschienen, so dass sich bereits ein erster Eindruck im Vergleich zu Drupal 6 und 7 festhalten lässt.

Drupal 8 kommt

Vorab zur der umstrittensten Frage der Community um Drupal 8: der Veröffentlichungstermin. Die Spekulationen dazu variieren in der Community zwischen Ende 2014 und Sommer 2015. 

Ein Releasezyklus ist auf der Drupalseite zwar veröffentlicht (https://www.drupal.org/core/release-cycle), aber ein Blick auf den letzten Punkt der Umsetzung: "API completion phase" verrät mit dem Kürzel TBD (englisch: to be determined), dass der Termin für die Fertigstellung noch nicht bekannt ist. Dries Buytaert betonte bereits vor einiger Zeit in einem Interview, "dass Drupal dann fertig ist, wenn es fertig umgesetzt ist"

Kurz: Ein genauer Termin steht nicht fest und die regelmäßige Kontrolle des Releasezyklus lohnt sich. Auch der wöchentliche Fortschrittsbericht ist in diesem Zusammenhang interessant: https://groups.drupal.org/core/twidc. Alle anderen Angaben sind reine Spekulationen.

Klar ist aber, dass mit dem Erscheinen von Drupal 8 der Support für Drupal 6 entfällt. Würde dies nach dem gleichen Releasezyklus der Drupal-Versionen zuvor erfolgen, wäre die Unterstützung zeitgleich mit dem Veröffentlichungstermin vorbei. Aufgrund der jedoch zahlreichen Webseiten, die noch Drupal 6 einsetzen, wurde beschlossen, den Support von Drupal 6 noch drei Monate nach dem Release  zu garantieren. (https://www.drupal.org/node/2288521).

Drupal 7 erhält dagegen weiterhin Support bis zum Release von Drupal 9 (voraussichtlich 2018). Vom aktuellen Zeitpunkt aus (Juli 2014) wird Drupal 7 also noch mindestens vier Jahre Support erhalten. 

Damit sollen Benutzern von Drupal 6 drei Optionen für die Zukunft gegeben werden: 

  1. Das Update von Drupal 6 zu Drupal 7 als aktuelles stabiles System.
  2. Das Update von Drupal 6 zu Drupal 8 innerhalb der drei Monate. Hier gilt es zu beachten, dass zu dem Release-Zeitpunkt noch nicht alle Module umgesetzt sein werden oder evtl. überhaupt nicht für diese Drupal-Version umgesetzt werden. Die meisten mit dem Content Construction Kit erstellten Entitäten und Felder sollen laut offizieller Verlautbarung jedoch bei der Migration sauber berücksichtigt werden.
  3. Organisation/Firmen zu finden, die einen Long Term Support für Drupal 6 übernehmen. (https://www.drupal.org/node/2287855)

Die markantesten Änderungen im Core

Der vollständigen Wechsel zum objektorientierten Ansatz ist für alte Kenner von Drupal wohl sehr überraschend. War Drupal in den Versionen 6 und 7 eher einem modularen System zugewandt in dem PHP-Klassen nur selten eingesetzt wurden, so wird das objektoriantierte Paradigma hier nun vollständig umgesetzt. Basis für die Entscheidung ist die Einbindung von bereits bewährten PHP-Technologien, die alle dem OOP Ansatz folgen.

Zu den neu eingesetzten Technologien gehören auf der PHP Seite das Framework Symfony2 (http://symfony.com/), Guzzle (http://guzzle.readthedocs.org/en/latest/) als flexibler http Client und dem Asset Management Framework Assetic (https://github.com/kriswallsmith/assetic). 

Als Basis-Libraries für Javascript werden aktuelle Versionen von JQuery (http://jquery.com/), Jquery Ui (http://jqueryui.com/), Modernizr zum Prüfen von html5 Browser Features (http://modernizr.com/) und Backbone (http://backbonejs.org/) für die Strukturierung von Web-Applikationen eingesetzt.

Die APIs wurden im Hinblick auf barrierefreie Webseiten erweitert (Unterstützung der technischen Spezifikation WIA-ARIA und semantisches HTML5) und liefern Tools zur entsprechenden Prüfung für deren korrekten Umsetzung.

Für moderne Anforderungen hinsichtlich der Server-Kommunikation wurde eine REST- und Serialisierungs-API neu eingebracht, die serialisierte Daten wie JSON oder XML erzeugt.

"Mobile first" ist eine der Kernaussagen von den Entwicklern von Drupal 8. Ziel ist die unterschiedliche Ausgabe des gleichen Content für unterschiedliche Endgeräte wie z.B. Mobil oder Desktop.

Drupal präsentiert sich dementsprechend auch mit Core-Templates, die sowohl für die Webseite als auch dem Administrationsbereich die Darstellung auch auf mobilen Endgeräten ermöglicht.

Inline Editing und der CKEditor als In-Place WYSIWYG-Editor sind von Hause aus integriert. Als Template Engine wird nun TWIG (http://twig.sensiolabs.org/) eingeführt, das Templates zu reinen PHP-Templates compiliert. TWIG reduziert den Overhead von Templates, beschleunigt damit die Ausgabe und liefert zudem Features zur Templatesicherheit sowie einen Parser und lexikalischen Scanner.

Zugunsten der Benutzerfreundlichkeit geht man bei Drupal 8 sogar soweit, eine API zu implementieren die das Erstellen von sogenannten Touren (also informelle Führungen im Adminstrationsbereich) ermöglicht.

Der Core von Drupal ist nun schlanker. Die API wurde verbessert, indem die Entwickler Funktionen in Klassen strukturierten und der Code bis auf essentielle Methoden abgespeckt wurde. Damit sind nur noch wenige bekannten Funktionen aus Drupal 6 und 7 vorhanden und die Methoden der neuen API verteilen sich in eindeutigen Klassen.  

Eine Übersicht der aktuellen API-Übersicht für Drupal 8 finden Sie hier: https://www.drupal.org/developing/api/8.

Zieht man das nun existierende "Routing System" zum Vergleich heran, so wurde das Routing einer Drupal-Domain in Drupal 7 über die Implementierung von hook_menu() gesteuert. Neben den Routing Aspekten befanden sich dort auch Funktionen zur Anpassung und Erzeugung von Menu Einträgen und Tabs. Diese Funktionen sind nun in anderen Bereichen der Drupal API aufgegangen. 

In den Core eingeflossen sind nun auch die Views, mit der Absicht die Erzeugung eigener Content Elemente (Listen, Galerien, Tables, Maps, Menu-Items, Blocks, usw.) zu vereinfachen. Einige Elemente (wie z.B. die Standard Frontseite, Content, Files u.a.) sind in Views umgewandelt worden und stehen so direkt zur Verfügung. 

In diesem Zusammenhang sollte man gleichzeitig auch das neue Block-Konzept erwähnen. Grob zusammengefasst sind Blöcke nun Entitäten und bekommen Felder, Revisionen und andere Entität-Eigenschaften zugewiesen. (Vergleichbar mit den Nodes.)  Zudem können mehrere Instanzen von Blöcken erzeugt werden. So lässt sich z. B. ein Menu einmal erzeugen und an beliebiger Stelle erneut einbinden. Einige vormals hardcodierte Elemente sind nun in flexible Blöcke umgewandelt (z .B. die Breadcrumb-Navigation und der Seitenname). Weitere sollen folgen. 

Bei den Entitäten ändert sich strukturell die historische gewachsene Nutzung der "nid", also der Node-Id. Sie fällt komplett weg. Es werden nun "Universally Unique Identifiers" (kurz: "UUID") für Entitäten eingeführt, damit sichergestellt ist, dass Inhalte die auf unterschiedlichen Web-Seiten erzeugt wurden, sicher gemischt werden können.

Die Multilanguage-Basis von Drupal 8 wurde komplett überarbeitet. Wer sich über die eingeflossenen Änderungen einen Überblick verschaffen möchte - dem empfehle ich einen Blick in folgende Seiten: http://hojtsy.hu/multilingual-drupal8 und die Webseite der Drupal 8 Multilanguage Intiative (http://www.drupal8multilingual.org/). Um ein besonderes Merkmal herauszustreichen: zu Beginn einer Installation wählt man eine Sprache aus und diese wird von Drupal als Standard-Sprache angesehen. Dabei passt Drupal sich auch den Schreibweisen rechts nach links oder umgekehrt an. Bei anderen CMS-System wird oft pauschal davon ausgegangen das die Standard-Sprache Englisch ist und dann die eigentlich gewünschte Sprache erst nach der Installation konfiguriert.

Es gibt in Drupal 8 ein neues Konfigurations-Management: dieses basiert auf YAML (http://www.yaml.org/). Diese YAML-Konfiguration wird in der Datenbank gespeichert und kann zum Austausch zwischen Development- und Produktiv-Systemen als Files exportiert und importiert werden.

Fazit

Man erkennt ganz klar das Ziel von Drupal 8: sich als modernes CMS neu zu definieren, das den Herausforderungen wie responsive Design, Barrierefreiheit und Benutzerfreundlichkeit auch in Zukunft gewachsen ist. 

Dafür greifen die Entwickler auf viele neue, aber trotzdem stabile Technologien zurück, die sich diesem Trend verschrieben haben. Zwar lässt sich anhand des Alpha Stadiums das finale Format des CMS nicht abschätzen, aber die Grundbausteine versprechen viel Flexibilität, die man als Entwickler bei früheren Versionen manchmal vermisst hat. Redakteure auf der anderen Seite kommt die Benutzerfreundlichkeit des Inline Editing sicherlich sehr entgegen.

Bei genauerer Betrachtung (aktuell Juli 2014) anhand des Stands von Drupal 8, lohnt sich die Erstellung einer Drupal 7 Site weiterhin. Setzt man nicht allzuviele Module von Dritt-Anbietern ein oder nur Module für die bereits eine Umsetzung für Drupal 8 geplant ist, so werden sich bei einem späteren Update von Drupal 7 zu Drupal 8 die Anpassungen in einem moderaten Verhältnis bewegen.

Betreiber einer Drupal 6 Site sollten ab jetzt planen, wie Sie mit Ihrer Drupal Instanz zukünftig verfahren möchten. Wenn Sie dafür Beratung und Unterstützung suchen, werden Sie in der form4 GmbH & Co. KG hier einen starken Partner finden.

comments powered by Disqus