Letzten Freitag fand im Wiener Museumsquartier im Rahmen der Europäischen Codeweek der Drupal 8 Starter Day statt. Die kostenlose Veranstaltung hatte zum Ziel, Interessierten die Änderungen und neue Features vom Content Management System Drupal 8 – just in der Beta-Phase reingekommen – zu präsentieren.
Die Veranstaltung begann mit einem Zusammenkommen bei Kaffee und Kuchen, gerade als es draußen anfing heftig zu regnen. Beste Voraussetzungen also, um seine Aufmerksamkeit den folgenden Präsentationen zu widmen. Nach einer kurzen Vorstellung des Ablaufs und der Tagesthemen ging es auch schon gleich mit der ersten Session los.
Sitebuilding mit Drupal 8
Sebastian Siemssen und Philipp Melab hatten als erste den Task die Teilnehmer mit Drupal 8 Core bekannt zu machen, indem sie live eine Demoseite aufbauten, bei der man die beiden Vortragenden durch ein Ratingsystem bewerten konnte. Die Session müsste besonders Anfänger und Unerfahrenen gut gefallen haben, denn bevor es mehr in die Tiefe ging wurden der überarbeitete Installer von Drupal 8 sowie die Grundkonzepte von Drupal (Entities, Nodes, Menü-, Field- uns Permissionssystem usw.) vorgestellt.
In der Live-Demo wurde dann in kurzer Zeit das System so konfiguriert, dass bereits nach ein paar Minuten über die Mobilgeräte Bewertungen abschickt werden konnten. Dabei wurde nur auf Modulen/Funktionalitäten aufgebaut, die bereits in Drupal 8 Core inkludiert sind. Für die verschiedensten Ansichten wurden die Features, des seit Version 8 im Core inkludierten Modul Views ausgereizt. Richtig interessant ist die Vorstellung der Funktionalität der CMI (Configuration Management Initiative) gewesen, indem demonstriert wurde, wie die bereits getätigten Konfigurationen (nur Konfigurationen, keine Inhalte) bequem über die Admin-Oberfläche von Drupal auf eine andere Instanz (über die eingebaute Export/Import Funktion) übertragbar sind.
Theming in Drupal 8
Nach der Mittagspause (mit leichter österreichischer Kost aka Käsespätzle) folgte ein weiteres spannendes Thema, was Drupal 8 betrifft – das neue Theming-System. Christian Ziegler stellte die wichtigsten Änderungen vor – besonders für eingefleischte Drupal 7 Themer ein Leckerbissen (auch nach dem Mittagsessen), denn es hat sich einiges getan in dem Feld, z.B.:
- Alle Core-Themes responsive
- Starker Einzug von HTML5-Elementen
- Starker Rückzug von CSS ID’s, dafür steigende Benützung der BEM-Syntax
- Themes werden schlanker im Bezug auf js-Libraries
- keine „theming functions“ mehr, gesamter Output liegt nunmehr in Template-Files
- Neues Base-Theme Classy im Core, welches man nach Bedarf auch bequem ausschalten kann (= mehr und leichtere Kontrolle über Drupals‘ CSS Klassen – yay!)
Drupal 8 versucht den responsive-Ansatz im gesamten System so stark wie möglich auszuweiten, so können nun Themes auch eigene Breakpoints registrieren, die Drupal dann erkennen und einsetzen kann (z.B. durch Auslieferung von Bildern mit verschiedener Grösse, je nach Breite des Bildschirms). So finden sich solche Konfigurationen genau an der richtgen Stelle wieder, nämlich im Theme und sind damit pro Theme flexiblel änderbar.
Last but not least setzt Drupal 8 auf Twig als Templating Engine. Das ist ein wichtiger Schritt, denn durch Twig wird Drupal sicherer (z.B. automatisches Autoescaping, kein PHP-Code mehr in den Templates), konsistenter und einfacher. Ganz wichtig ist auch, dass Themer ohne Drupal Erfahrung viel leichter an einem Drupal-Projekt mitarbeiten können.
Coding in Drupal 8
Besonders für Entwickler hat sich sehr viel getan im Drupal 8-Universum (Einsatz von objektorientiertem Code). Der Vortrag von Wolfgang Ziegler begann mit einer kurzen Übersicht über die „PHP Renaissance“ in Bezug auf modernen Programmierpraktiken in der PHP-Sprache und den Einfluss deren auf den Code in Drupal 8. Denn die Änderungen in Drupal 8 stellen ein enormes Potential an Weiterentwicklung, sowohl für die Software, als auch für die Drupal-Developer dar. Dabei geht es um den Einsatz und das Erlernen von gängigen Programmierstandards (OOP), sowie um die Möglichkeit die Drupal-Insel zu verlassen und mehr von externen vorhandenen Systemen und Komponenten profitieren zu können, indem man „PHP best practices“ lernt und anwendet. Der Vortrag schuff eine sehr gute Übersicht über folgende Drupal-Development-spezifische Themen, auch Anhand von Beispielen aus dem System selbst:
- Modulstrukturen
- Den Weggang vom hook_menu-Praxis hin zu einem modernen Controller, Routing und Menu System
- Das neue Plugin-System
- Configuration System
- Services & Dependency Injection
- Bessere Tests durch den Einsatz von PHPUnit
Auch wenn der Talk mehr für erfahrene Entwickler mit Drupal-Hintergrund greifbar war, war die gegebene Übersicht auch für Entwickler sehr interessant, die Drupal 8 erst lernen wollen, besonders weil alle wichtige Code-Änderungen sehr ausführlich für die vorhandenen Zeit erfasst wurden.
Development Environment
Der letzte Vortrag des Tages befass sich mit dem Aufbau einer möglichst optimalen Entwicklungsumgebung für Drupal Developer, wobei die gegebenen Tipps auch generell für PHP-Entwickler sehr interessant waren. Sebastian Siemssen und Philipp Melab führten durch die optimalen Einstellungen eines IDE’s und demonstrierten wie man mit Hilfe der Drupal-Unterstützung von PHPStorm schnell und leicht richtig Code schreibt (durch Funktionsautovervollständigung, automatische Einstellung von Beachtung der Drupal Coding Standards usw.). Auch weitere Tipps fielen, u.a. die Wichtigkeit des Einsatzes richtiger Hardware (SSD-Harddisk für lokale Entwicklung).
Sehr hilfreich, eigentlich unverzichtbar für das professionelle Entwickeln, ist das Zusammenspiel von PHP’s Xdebug Library mit einem IDE, damit man die Codeausführung an bestimmten Stellen im Code unterbrechen kann und man so enorm in der Fehlersuche geholfen wird, z.B. durch Untersuchung von Variablenwerten an zeitlich bestimmten Stellen.
Fazit
Der Tag war wie erwartet ein sehr interessante und gelungene Veranstaltung. Drupal 8 ist um die Ecke, in der Beta-Phase steht schon das Grundgerüst fest und die Änderungen sind spannend und gut. Neue Entwickler, sowohl Anfänger, als auch fortgeschritte PHP-Entwickler, werden es durch den Einbau von Standards leichter haben Drupal kennenzulernen. Auch das UI ist besser geworden, responsive und UX-optimiert. Videobeiträge zu den Sessions folgen dann in Kürze und werden natürlich auch hier noch veröffentlicht, einen Überblick über unsere Fotos findet ihr auf unserem Flickr-Account.