Drupal 8 ist da!

Drupal 8 bringt viele Änderungen für Entwickler und Theme Designer
November, 2015
Author: 
Larry.Elektrik

Fünf Jahre nachdem der "Erfinder" von Drupal, Dries Buytaert, die Entwicklung von Version 8 des Open Source Content Management Frameworks einleitete, wurde Ende November nun das offizielle Release von Drupal 8 bekanntgegeben.

Laut builtWith.com rangiert Drupal nach Wordpress und Joomla auf Platz drei der weltweit meistgenutzten Content Management Systeme; Tendenz steigend. Prominente Drupal Vertreter sind etwa die Website des Weißen HausesWarner Bros Records oder derElectronic Frontier Foundation.

Im Unterschied zu klassischen Content Management Systemen, stehen bei Drupal nicht die einzelnen Seiten eines Webauftritts im Mittelpunkt, sondern klar definierte Inhaltstypen, ähnlich wie in einer Datenbank. Aus diesen können mit dem Tool "Views" einzelne Seiten oder Blöcke dynamisch generiert werden. 
Wenn man so möchte, lebt Drupal nicht davon vorgefertigte Module für eine bestimmte Aufgabe zu liefern, sondern von seinen vielen Bausteinen, die ohne großartige Programmierkenntnisse zu jedem beliebigen Modul zusammengestückelt werden können.

Eine weitere Besonderheit von Drupal ist die Möglichkeit administrative Tätigkeiten nicht nur im Browser, sondern über die Linux Commandline durchzuführen. Die Drupal Shell, kurz Drush, erlaubt z. B. die Installation oder Aktualisierung von Modulen oder die Verwaltung von Benutzern über Shellscripts.

Eine Hürde für die Nutzung von Drupal für Hobby-Anwender war bisher sicherlich, dass eine frische Installation sehr minimalistisch ausgestattet ist und Neulingen der Einstieg dadurch nicht leicht gemacht wird. Ein integrierter WYSIWYG Texteditor für Redakteure und der umfangreiche Query-Builder, der mitunter dem Framework seine besondere Flexibilität gegenüber anderen Systemen verleiht, müssen erst nachträglich vom Entwickler installiert werden.
In seiner neuesten Version wurden viele der beliebten Module direkt in den Drupal Core integriert und stehen direkt nach der Installation zur Verfügung. 

Besonderes Augenmerk bei der Entwicklung von Drupal 8 wurde auf den Austausch von Inhalten zwischen Website und externen Services gelegt. So wird die eigene Website zur Schaltzentrale, über die andere Kanäle bespielt werden können. Es ist möglich Daten der Seite via integrierte REST-Schnittstellen, JSON oder RSS Feeds mit der eignenen Handy-App bzw. Partner-Websites oder Social Media Portalen auszutauschen.
 

Verbessertes Deployment

Bisher war es nur über Umwege und eher schlecht als recht möglich, Änderungen von Staging Hosts auf die Live Server zu übertragen. Das beliebteste Modul dafür, Migrate, wurde ebenso in den Drupal 8 Core integriert. Die Konfiguration von Modulen kann zukünftig nicht nur in der Datenbank gespeichert, sondern in Config-Dateien abgelegt und zwischen Entwicklungs- und Liveseiten übertragen werden. Die Migrationsfunktionen können auch mit der Drupal Shell über Commandline bedient werden und ermöglichen automatisierte Deployment Szenarien.
 

Drupal 8 StatistikDrupal 8 Performance und PHP 7


Große Teile des Codes sind runderneuert und ein "objektorientierterer" Ansatz wurde gewählt. Auf die Kompatibilität zu PHP 7 hat man viel Wert gelegt. 

In Kombination mit vielversprechenden Neuerungen im Caching System, werden Drupal 8 Websites auf PHP 7 die möglichen Requests/Sekunde beinahe verdoppeln können. Im Benchmark kann PHP 7 auch HHVM deutlich schlagen.

(Benchmark vonhttp://talks.php.net/fluent15#/drupalbench)

 

Neuer Ansatz beim Erstellen von Drupal Themes

In vielen Medienberichten als deutlicher Security-Vorteil gelobt, werden sich dennoch viele Entwickler vielleicht nicht sofort über die neue Art Drupal Themes zu erstellen, freuen. Die bis Drupal 7 übliche Methode, Seiten-Templates in PHP zu schreiben, wurde vollkommen durch die Template Engine Twig ersetzt. Für Theme Entwickler bedeutet das, dass sie sich an eine neue Syntax in den Template Files gewöhnen werden müssen:

  1.  
  2.  
  3. //Aus diesem Code ...
  4.  
  5. <?php echo $var ?>
  6. <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
  7.  
  8. //wird zukünftig
  9.  
  10. {{ var }}
  11. {{ var|escape }}
  12. {{ var|e }}         {# shortcut to escape a variable #}
  13.  
  14.  
  15. //Schleifen werden so definiert:
  16.  
  17. {% for user in users %}
  18.     * {{ user.name }}
  19. {% else %}
  20.     No users have been found.
  21. {% endfor %}
  22.  

Für Modul-Entwickler entfallen sämtliche Theme-Funktionen. Stattdessen wird der Output ausschließlich über Template Files realisiert.

  1.  
  2.  
  3. //Bis Drupal 7 würde man die Ausgabe in einem Modul in PHP so formulieren
  4.  
  5. function theme_datetime($variables)
  6. {
  7.   $output = '<time' . new Attribute($variables['attributes']) . '>';
  8.   $output .= !empty($variables['html']) ? $variables['text'] : check_plain($variables['text']);
  9.   $output .= '</time>';
  10.   return $output;
  11. }
  12.  
  13. //Daraus wird unter Drupal 8 in Kombination mit twig
  14.  
  15. {#
  16. /**
  17.  * @file
  18.  * Default theme implementation for a date / time element.
  19.  * @see template_preprocess_time()
  20.  * @see http://www.w3.org/TR/html5-author/the-time-element.html#attr-time-datetime
  21.  */
  22. #}
  23. <time{{ attributes }}>{{ text }}</time>
  24.  

 

Drupal 6 is dead

Schlechte Nachricht für Betreiber von Drupal 6 Websites: Auf das offizielle Release des "Enkels" folgt nach acht Jahren im Dienst das Ende für den Support seines Großvaters. Ab 24. Februar 2016 wird es offiziell keine weiteren, kostenlose Updates für Version 6 geben. Auch Change Requests bzw. Bugreports werden nicht länger angenommen. 
Manche Kommentare auf der Offiziellen End-of-Lifetime Seite von Drupal 6 verleiten zum Schmunzeln, wenn dort die Aufrufe um verlängerten Support zum Teil ins Philosophische abgleiten.

Wer nicht die Möglichkeit zu einem Upgrade auf Drupal 7 oder 8 hat, kann ähnlich wie bei Windows XP für verlängerten Support bezahlen. Drupal verhandelt derzeit mit einigen Anbietern, die zukünftig kostenpflichtigen Support und Security Updates anbieten könnten. Vielleicht auch entscheidet sich ein Teil der Community, sich doch noch ein Weilchen länger um das alte System zu kümmern. Die Umfangreichen Änderungen, die jedes Major Release mit sich gebracht hat, machen den Support für drei Versionen des Content Management Frameworks jedoch für eine Community, die zu großen Teilen aus Freiwilligen besteht, zu aufwendig.

Drupal 7 soll bis zum Release von Version 9 supportet werden.

Alles in allem klingen die Neuerungen sehr vielversprechend, es wird aber auch einiges Neues für Entwickler zu lernen geben. Für Website-Redakteure wird die Bedienung komfortabler und Administrations Themes, die durchgängig im responsive Design umgesetzt sind, erlauben die Bedienung bequem auf unterschiedlichsten Geräten.

Quellen:

http://www.drupal.org
http://www.heise.de/open/artikel/Dru...t-2924230.html
https://kinsta.com/blog/hhvm-vs-php-7/
http://twig.sensiolabs.org/doc/templates.html

 

Chart: D8 Requests per Second