Für Sulu, ein Open Source Enterprise Content Management System für Symfony-Entwickler ist kürzlich die Major-Version 2.0 erschienen. Wir haben mit Daniel Rotter, Mitglied des Core Teams über das CMS gesprochen. Informationen zu den neuen Features und den Zukunftsplänen von Sulu gibt es hier.
Die Major-Version 2.0 für das Open Source Enterprise Content Management System Sulu ist erschienen. Wir haben Daniel Rotter, Mitglied des Core Teams, zu den Neuerungen des CMS befragt.
entwickler: Hallo Daniel, fangen wir vorne an: Was ist genau Sulu?
Daniel Rotter: Sulu ist ein Open Source Enterprise Content Management System, welches an Symfony-Entwickler gerichtet ist. Wir halten die Lernkurve bewusst flach und wollen die bestmögliche Developer Experience anbieten. Sulu erlaubt große Internetauftritte mit mehreren Portalen, Sprachen und verschiedenen Channels bequem mit einer Installation und einer intuitiven Benutzeroberfläche zu verwalten. Das Besondere an Sulu ist, dass es einfach nur eine Full-Stack Symfony Applikation ist, und man deshalb sehr viel Wissen ohne Probleme weiter anwenden kann. Wer Symfony kann, kann Sulu.
entwickler: Sulu 2.0 ist kürzlich erschienen: Unter den neuen Features, welches zählt zu deinem persönlichen Highlight?
Daniel Rotter: Mein persönliches Highlight ist nicht ein einzelnes Feature, sondern die komplett neue Denkweise, die wir mit Sulu 2.0 eingeführt haben. Sulu war schon in der Version 1.6 ein sehr erweiterbares CMS, und konnte auch verwendet werden um komplizierter Business Logik abzubilden. Allerdings musste man dafür auch einiges an JavaScript implementieren, was vielen Entwicklern, die Symfony und PHP gewohnt sind, nicht besonders gut gefallen hat. Deshalb haben wir uns mit Sulu 2.0 dazu entschieden, diese Notwendigkeit soweit es geht hinauszuzögern. Dadurch konnten wir die Developer Experience weiter verbessern.
Mein persönliches Highlight ist die komplett neue Denkweise, die wir mit Sulu 2.0 eingeführt haben.
Das Ergebnis kann sich in meinen Augen wirklich sehen lassen: Backend-Entwickler können jetzt eine REST API implementieren, die gewisse von uns vorgegebene Standards erfüllen muss. Diese API kann dann in unserer Administrationsoberfläche integriert werden, und das durch die reine Definition von Metadaten, welche auch ohne JavaScript erledigt werden kann. Es wird lediglich definiert wie die Felder der REST API in unseren Listen und Formulare dargestellt werden sollen. Sogar ein eigener Feldtyp im Formular, mit dem man seine eigenen Objekte z. B. Seiten im CMS zuweisen kann, kann mit Metadaten ohne jegliche JavaScript-Kenntnisse erstellt werden. Und das alles ist in einer aufgeräumten Single Page Applikation verpackt, die sich wie eine Desktop-Applikation anfühlt.
entwickler: Welche großen Neuerungen bzw. Änderungen erwartet die EntwicklerInnen mit Sulu 2.0?
Daniel Rotter: Die größte Neuerung ist wie bereits beschrieben die Umstellung auf die Benutzung von Metadaten, um eigene Business Objekte beschreiben zu können. Im Backend hat sich ansonsten nicht wahnsinnig viel geändert, mal abgesehen davon, dass wir einige veraltete Funktionalitäten entfernt haben und uns um Konsistenz an verschiedensten Stellen bemüht haben. Unser Fokus war, die Developer Experience weiterhin zu verbessern, anstatt nur neue Features hinzuzufügen.
Unser Fokus war, die Developer Experience weiterhin zu verbessern.
Auf der JavaScript Seite hingegen haben wir auf einen kompletten Rewrite gesetzt. Das bedeutet, dass eigentlich keine Zeile im Frontend gleich ist wie davor. Das hängt damit zusammen, dass wir anstatt auf einen über fünf Jahre alten JavaScript Stack jetzt auf React und MobX setzen. Technologien wie Backbone und Aura.js, die wir zuvor verwendet haben, sind da nur sehr schwer zu integrieren. Und als Open Source System ist es in meinen Augen sehr schwierig, nur Teile unserer Administrationsoberfläche umzuschreiben. Wenn man um eine Erweiterung zu schreiben neben React auch noch andere JavaScript Frameworks beherrschen muss, hinterlässt das nämlich bestimmt bei keiner technischen Evaluierung einen guten Eindruck.
entwickler: Was zeichnet Sulu im Vergleich zu anderen CMS aus?
Daniel Rotter: Sulu erlaubt, neben der bereits integrierten Content Management Funktionalität, mit dem Symfony Framework, welches bereits viele PHP-Entwickler kennen, eigene Logik zu integrieren. Das resultiert in eine sehr kurze Einlernzeit für Symfony-Entwickler, weil Sulu im Prinzip nichts anderes als eine Symfony-Applikation ist, in der Symfony-Entwickler ihre eigenen Controller, Routen, usw. auf bereits bekannte Art und Weise einbinden können.
Darüber hinaus haben wir jetzt wirklich viel Energie in unsere Administrationsoberfläche gesteckt, dank der diese Funktionalitäten auch sehr einfach integriert werden können. Damit haben wir bereits sowohl Ticketing- und Rezepteplattformen als auch unternehmensinterne Intranets mit einem Headless Setup implementiert, und wir sind davon überzeugt, dass Sulu für solche Aufgaben mit hohem Individualisierungsgrad die effizienteste Plattform ist.
entwickler: Sulu 2.0: Wie geht es danach weiter?
Daniel Rotter: Sulu 2.1 steht bereits in den Startlöchern, und wird eine Filterfunktion für Listen beinhalten, die natürlich auch wieder auf eigene Objekte angewendet werden kann. Darüber hinaus wird es endlich möglich sein, Inhaltsblöcke im CMS zu verschachteln.
In Zukunft werden wir auch noch mehr Funktionalität auf Blockebene integrieren.
In Zukunft werden wir auch noch mehr Funktionalität auf Blockebene integrieren. Wir denken da z. B. an die Möglichkeit, einzelne Blöcke auszublenden, ohne sie gleich löschen zu müssen, oder das Ausblenden von Blöcken auf Basis von Tageszeit oder Datum. Wir wollen sogar noch einen Schritt weiter gehen, und unser Zielgruppen-Feature auf Blöcke ausweiten. Das würde es Content Managern erlauben, selbst Zielgruppen zu definieren, die von unserem System erkannt werden (man siehe auch meinen Talk auf der IPC 2018 in Berlin), um die Inhaltsblöcke nur interessierten Nutzern darzustellen.
entwickler: Vielen Dank für das Interview!