TYPO3 Camp Stuttgart

Für uns (Rafael und Timo) war das diesjährige TYPO3-Camp Stuttgart das erste Camp in Stuttgart. Das Schloss Hohenheim und die Anlagen drum herum, gepaart mit dem perfekten Wetter boten die idealen Bedingungen für das Camp.

Ein Dank gilt hier der Universität Hohenheim, die das mit ermöglicht hat.

TYPO3Camp Stuttgart 2018

Für die TYPO3-Community wird es leider das letzte Camp im Schloss der Uni Hohenheim gewesen sein. Für nächstes Jahr ist eine neue Location geplant.

Samstag

Vor der Sessionplanung bestand die Möglichkeit, gemeinsam im Schloss zu frühstücken. Dadurch konnte man schon den ein oder anderen Teilnehmer kennenlernen.

Eröffnet wurde das Camp von Jochen Weiland und dem Orga-Team, das zunächst ein paar organisatorische Fragen klärte und dann zur Sessionplanung überging. Es gab zahlreiche Sessionwünsche und auch zahlreiche Sessionangebote aus vielen Bereichen von TYPO3.

Wir selbst haben zwei Sessions vorgeschlagen. Die erste Session hatte die EXT:solr-Neuerungen in 8.0 zum Inhalt. Die zweite Session befasste sich mit den Themen zu den Volltext-Index-Basics und welche Vorteile Suchmaschinen (Search Engines) gegenüber SQL haben.

Um alle Sessions unter einen Hut zu bringen, haben wir beide Themen in einer Session kombiniert.

Relaunch typo3.org

In der ersten Session des Tages erzählte Thomas Löffler über den Relaunch von typo3.org. Nach über 1,5 Jahren, wurde im April die neue Webseite online gestellt und im Hintergrund war einiges auch an der Infrastruktur zu machen. Thomas gab Einblicke in die Codesprints und erzählte einige lustige Anekdoten. Nach dem Livegang ist geplant, die Webseite weiterzuentwickeln. Hierzu werden insbesondere im Bereich Frontend noch Leute gesucht, die das Team ergänzen können.

Apache Solr 8 - What’s next - Search Index Basics

Unsere Session war zweigeteilt. Im ersten Teil hat Timo die Features der EXT:solr Version 8 gezeigt und unsere Pläne, Ideen sowie Schwerpunkte für das Jahr 2018 vorgestellt.

Im zweiten Teil der Session erklärt Rafael die Grundlagen eines Suchindexes für Volltextsuche, also die Einleitung in die von ihm geplante Session. Hierbei zeigte er mit einfachen Beispielen, wie eine Indexierung funktioniert und wie der erstellte Index später für die Suche verwendet werden kann.

TYPO3 9

Diese Session wurde von Benni Mack, Georg Ringer und Mathias Schreiber präsentiert. Sie stellten den aktuellen Stand in TYPO3 9 vor:

  • System Maintainer:
    Die Rolle des System Maintainers wurde eingeführt um Verwaltungsaufgaben am System durchzuführen. Er kann z. B. das Installtool öffnen, ohne ein weiteres Passwort eingeben zu müssen.


  • Maintenance Tools:
    Die Maintenance Tools bieten Zugriff auf Verwaltungsaufgaben des Systems wie z. B.:

    • Alle caches löschen
    • Sprachdateien verwalten
    • Admins anlegen
    • …

  • Debug Labels im Backend
    Dieses Feature ermöglicht es, z. B. Feldnamen im Backend zu sehen. Das ist hilfreich, wenn man dies als Entwickler sehen möchte, ohne z. B. die Inspectfunktion des Browsers zu benutzen.


  • Site Management
    Das Site Management bündelt alle Einstellungen, die für eine Site in TYPO3 notwendig sind (Sprachen, Domains, Errors Handling,…). Die Daten aus dem Site Management-Modul werden in einer YAML-Datei gespeichert und sind so auch instanz-spezifisch anpassbar, z. B. für ein automatisiertes Deployment.


  • Redirects:
    Eine neue core extension typo3/cms-redirects erlaubt es die Redirects im TYPO3-Backend anzulegen und zu verwalten.

Redirect on root level

Das perfekte TYPO3-Composer-Setup

In unserer letzten Session des Tages stellte Helmut Hummel »Das perfekte TYPO3 Composer Setup« vor.

Helmut Hummel Präsentation Hierbei ging er auf folgende Komponenten ein und installierte Schritt für Schritt ein TYPO3-System:


  • Site package
    Die projektspezifischen Anpassungen befinden sich in einem Site Package, dieses Package ist ein composer-Paket, das im Projekt installiert wird.

  • Secure web
    Sorgt dafür, dass nur die Dateien ins öffentliche Verzeichnis des Webservers landen, die dort unbedingt gebraucht werden (also alles was in „Resources/Public“ bei den Extensions liegt.). Alle anderen Dateien werden in einem Verzeichnis hinterlegt, das nicht von aussen über den Webserver erreichbar ist.

  • .env Connector
    Erlaubt, die Einstellungen die für die aktuelle Instanz benötigt werden (z.b. Zugangsdaten für DBs, Dienste & co.) in einer .env Datei auszulagern und diese dann als Einstellungen für die TYPO3-Instanz zu verwenden.

  • helhum/typo3-config-handling
    Erlaubt das Auslagern der Einstellungen (LocalConfiguration.php) in YAML-Dateien. Hierbei ist auch die komfortable Anpassung von Extensioneinstellungen möglich, die dann in der LocalConfiguration.php wie früher serialisiert (hieroglyphen-mässig :P) gespeichert werden.

  • typo3-console/composer-auto-setup
    
Da in einem optimalen composerbasierten System alle installierten Extensions aktiviert werden können (weil andere Extensions sich nicht auf dem System befinden), können Extensions, die per composer eingebunden sind, auch automatisch aktiviert werden. Dafür sorgt „composer-auto-setup“ indem es sich in den composer Installations-Prozess einklinkt und die Assistenz-Schritte/Anweisungen vom Extension-Entwickler zum Aufsetzen/Konfigurieren der Extension ausgibt.

Wer das Ganze zu Hause nachvollziehen möchte, dem sei hiermit Helmut Hummels »Step by step to a nice TYPO3 Composer distribution« ans Herz gelegt:

Abendessen

Zum Abschluss des Abends gab es ein sehr leckeres Abendessen, dass aus Spanferkel und einigen regionalen Spezialitäten bestand. Im und rund um das Schloss gab es viele Möglichkeiten zum Austausch, einen DJ und eine Cocktailbar versprachen eine gelungene Partynacht.

Aftersession Party


Sonntag

Der zweite Camp-Tag hat später begonnen – Sonntag halt;-) Nach einem gemeinsamen Frühstück wurden die freien Slots, die beim ersten Tag nicht belegt waren, mit Sessions aufgefüllt.

Dabei hat Jochen Weiland einen sehr nützlichen Tipp gegeben: Da es zu viele Sessions gab und man nicht überall zeitgleich sein konnte, empfahl er die nicht gefilmten Sessions Vorrang zu geben und sich die gefilmten Sessions später auf YouTube anzusehen. So konnte jeder das Maximale aus dem Camp mitnehmen.

Cart-Extension

In der ersten Session, die wir besucht haben, stellte Daniel Lorenz seine Cart-Extension und die zugehörigen Add-Ons vor. Die Extension ermöglicht es, belibiege Records von TYPO3 in den Warenkorb zu legen und somit zu verkaufen. Außerdem kann man unterschiedliche Schritte zum Abschließen des Kaufs definieren. Die Add-Ons für die Cart-Extension bieten weitere typische Shop-Features (z. B. unterschiedliche Zahlungsmöglichkeiten & Co.)

Pluswerk

Uns hat die Idee mit dem Verkauf von beliebigen Datensätzen sehr gefallen und wir würden die Shop-Funktionalität gerne mit EXT:Solr verknüpfen können, denn im Solr-Index können ebenso beliebige Datensätze aufgenommen und durchsuchbar gemacht werden.

TYPO3-Zukunft

Für die zweiten Session haben wir uns entschieden, mehr über die Zukunft von TYPO3 zu erfahren (Benni Mack und Mathias Schreiber). Trotz der Tatsache, dass die Session aufgenommen wurde, wollten wir unbedingt live dabei sein.
Mathias und Benni haben Publikumsfragen beantwortet und wichtige Themen aufgegriffen (Stand der PSR-7(Request/Response)-Integration in dem Core und in Extbase, JSON-API-Vereinfachung für Entwickler, etc.) Insgesamt gab es allgemein viele Fragen zu JSON.

Zukunft TYPO3

Mathias hat das Thema »JSON bei MySQL« aufgegriffen und wollte vom Publikum, wissen ob jemand Einwände hätte, eine neuere MySQL-Version für TYPO3 zu verwenden, um z. B. nativen JSON-Datentyp mit all seinen Vorteilen(suchen/abfragen am JSON-Pfad oder Indizes auf gewünschte JSON-Pfade) nutzen zu können. Man muss also immer zwischen Neuerungen und Kompatibilität mit dem Hosting/Deployment abwägen und fast immer mit schweren Herzens die Entscheidungen treffen, ob neue Funktionen/Umsetzungen/Technologien vor der Abwärtskompatibilität vorgezogen werden können.

Beim dritten Session-Slot haben wir uns aufgeteilt. Timo war bei der Shopware-Einführung und Rafael ging in die Pattern-Lab-Selbsthilfegruppe.
Shopware ist ein in Deutschland entwickeltes Online-Shopsystem. Die dkd ist übrigens offizieller Shopware Partner.

Shopware

In dieser Session gab es eine allgemeine Einführung in Shopware. Hierbei wurde erklärt, wie man Templates, die auf smarty basieren, anpassen kann und somit auch das Layout des Shops an die Projektanforderungen.

Außerdem wurde gezeigt, wie man mittels product-streams, Produkte dem Kunden so präsentieren kann, dass sie seinem Interesse möglichst nahe kommen.

Pattern Lab

Bei der Selbsthilfegruppe für Pattern Lab wurden viele Themen besprochen. Das Pattern Lab ist eine Art ›lebenender‹ Styleguide, der auf dem Gedanken der Atomic-Designs aufsetzt. Beim Pattern Lab können Frontendler, auf einzelnen die gemäß Corporate-Design-Vorgaben gestalteten Webelemente zugreifen und neue ergänzen.

Einer der Teilnehmer hat ein wichtiges Problem beim Fluid-&-Atomic-Design-Gespann geschildert: Es ist sehr aufwendig, alle Atome in Partials zu halten und diese dann mit f:render ViewHelper zu verwenden. Es ist außerdem sehr aufwendig, Pattern Lab zu pflegen und lohnt sich deshalb erst ab einem gewissen Projektumfang (mehrere Plattformen für Corporate Design. z.B . Webseiten auf anderen Plattformen, Mobile-Apps & co.). Und natürlich ist Pattern Lab für Fluid dann unumgänglich, wenn es beim Corporate Design schon vorhanden ist. Claus Due hat eine composer package zum Generieren von Pattern für Pattern Lab (siehe „namelesscoder/patternlab-fluid-patternengine“).

Interessant wäre, ob die generierte Pattern Lab in schon bestehende gemergt werden können: Also, ob die Atome und deren Verbindungen von unterschiedlichen Plattformen des Unternehmens zusammengeführt werden können.

Datenverschlüsselung

Letzter Session-Slot des Sonntags, den wir besucht haben, war die »Datenverschlüsselung« von Frank Berger. Er hat die Methoden zum verschlüsselten Speichern von Daten wie z.B. Schlüsseln oder anderen Daten in der Datenbank gezeigt. Symmetrische und Asymmetrische Verfahren zum Verschlüsseln erwähnt.

Datenverschlüsselung Präsentation

Die Extension von Frank Berger erlaubt es Daten, die im Kontext eines Frontendbenutzers in der Datenbank gespeichert werden, zu verschlüsseln.

Fazit

Schade, dass wir keine Zeitmaschine gehabt haben, um bei allen Sessions live dabei zu sein. Zum Glück aber wurden einige Sessions aufgezeichnet, so dass wir uns diese im Nachhinein anschauen können:

Videos vom Samstag:

Videos vom Sonntag:

Wir bedanken uns bei allen Organisatoren, Sponsoren und Teilnehmern für das tolle Camp und freuen uns auf das t3cs 2019!

von Timo Hund

Timo Hund works as a senior developer at dkd Internet Service GmbH. Over the last year he collected a lot of experiences with Apache Solr and Lucene in several IT projects.