[Technik] Drupal 8 ist da und bringt viele Änderungen für Entwickler und Theme Designer

[img=right]https://www.picflash.org/img/2015/11/24/DrupalLogo_053WRVP.png[/img]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.

rangiert Drupal nach Wordpress und Joomla auf Platz drei der weltweit meistgenutzten Content Management Systeme; Tendenz steigend. Prominente Drupal Vertreter sind etwa die , oder der .

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, , 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 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 von )


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 ersetzt. Für Theme Entwickler bedeutet das, dass sie sich an eine gewöhnen werden müssen:

[src=php]

//Aus diesem Code ...

<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

//wird zukünftig

{{ var }}
{{ var|escape }}
{{ var|e }} {# shortcut to escape a variable #}


//Schleifen werden so definiert:

{% for user in users %}
* {{ user.name }}
{% else %}
No users have been found.
{% endfor %}

[/src]

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

[src=php]

//Bis Drupal 7 würde man die Ausgabe in einem Modul in PHP so formulieren

function theme_datetime($variables)
{
$output = '<time' . new Attribute($variables['attributes']) . '>';
$output .= !empty($variables['html']) ? $variables['text'] : check_plain($variables['text']);
$output .= '</time>';
return $output;
}

//Daraus wird unter Drupal 8 in Kombination mit twig

{#
/**
* @file
* Default theme implementation for a date / time element.
* @see template_preprocess_time()
* @see http://www.w3.org/TR/html5-author/the-time-element.html#attr-time-datetime
*/
#}
<time{{ attributes }}>{{ text }}</time>

[/src]


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 . 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 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:




 
Wie wurden die Neuerungen so aufgenommen?
Ich hatte mich mal in Drupal7 eingearbeitet und war begeistert. war allerdings auch über die Themes gestolpert, das teilweise auslagern in Funktionen fand ich damals etwas unglücklich. Das schint jetzt ja übersichtlicher und einheitlicher gelöst zu sein.
 
  • Thread Starter Thread Starter
  • #3
Kommt mir irgendwie vor, als wär das erste D7 Projekt erst letzte Woche gewesen, aber dann sind es doch schon wieder einige Jahre. Bei uns im Büro freut man sich prinzipiell auf das erste Projekt mit Drupal 8, die großen Änderungen im Theme-System bedeuten aber sicherlich viele unbezahlte Arbeitsstunden, die man keinem Kunden weiterverrechnen kann. Aus Entwickler-Sicht freue ich mich daher über die neuen Möglichkeiten, aus wirtschaftlicher Sicht ist es aber eher unangenehm, wenn man "schon wieder" umlernen muss.

Ich denke aber nicht, dass wir vor Mitte nächsten Jahres die erste D8 Seite aufziehen werden. Zumindest für größere Kunden werden wir uns hier auf keine Experimente einlassen und erst einmal abwarten bis die Kinderkrankheiten auskuriert sind.

Über die Twig Template Engine weiß ich nicht viel. Vielleicht bietet sie ja wirklich einen Mehrwert und wird auch in anderen CMS eingesetzt, sodass man sich nicht "umsonst" damit beschäftigt. Als wir uns vor ein paar Jahren für Drupal als unser Haus-CMS entschieden haben, war ein Grund nicht Typo3 zu wählen, dass Typo3 die "eigene" Scriptsprache mitbringt. Habe damals wie heute gesagt, dass mir lieber ist, wenn ich alles in einer Sprache (PHP) machen kann, anstatt noch eine zusätzliche Syntax zu lernen.

Es ist nicht so, als hätte ich keine Lust etwas Neues zu probieren, aber im Arbeitsumfeld, wo es darum geht Projekte möglichst zeitsparend umzusetzen, heisst so eine Änderung auch immer, dass am Ende des Projekts weniger Geld in der Brieftasche landet.

--- [2015-11-26 01:59 CET] Automatisch zusammengeführter Beitrag ---

Grade eine neue Drupal 8 Instanz aufgesetzt und noch ein paar Dinge entdeckt:

  • Themes und Module sind nur mehr bedingt unter sites/all/ zu finden, sondern werden jetzt in den jeweiligen Verzeichnissen in der Drupal Root abgelegt. Für Multisite-Instanzen kommen die sites/ Unterverzeichnisse aber wieder zum Einsatz.
  • Relative URL-Aliase beginnen jetzt mit einem Slash.
  • In der settings.php sollten Trusted Hosts definiert werden, also die Domain(s), über die die Seite erreichbar sein sollte.
  • Quickedit erlaubt es Redakteuren direkt im Frontend Titel oder Body mit WYSIWYG Editor zu bearbeiten.
  • Einige Module, die ich gerne verwendet hätte, sind noch nicht fertig portiert oder erst als Dev erhältlich.
  • Drush muss (natürlich) auch aktualisiert werden um Drupal 8 Seiten zu verwalten
 
Zurück
Oben