Interview

SULU: Ein Open Source Projekt schlägt den Pfad des Symfony2 CMF ein
Kommentare

Die österreichische Website-Schmiede MASSIVE ART hat mit dem Sulu CMF eines der ersten Projekte auf Basis des jungen Symfony2 Content Management Frameworks in sein Portfolio aufgenommen. Wir sprechen mit Daniel Rotter über die Gründe, die zur Implementierung geführt haben, welche Vorteile sich daraus ergeben und welche langfristigen Chancen man sich von der Umstellung erhofft.

PHP Magazin: Warum haben Sie bei Sulu CMF sich für Symfony CMF entschieden?

Daniel Rotter: Bereits vor einigen Jahren haben wir unser erstes OpenSource CMS auf Basis des ersten Zend Frameworks entwickelt: ZOOLU. Dabei konnten wir einiges an Erfahrung sammeln und sind auch auf zwei gröbere Probleme gestoßen – die ich gerne kurz erläutern möchte.

Vor die erste größere Herausforderung stellte uns das Speichern der Daten, die dann vom CMS als Seite ausgeliefert werden. Um unsere relativ komplizierte Seitenstruktur (abhängig vom verwendeten Template) mit unterschiedlichen Elementen – wie Titeln, Textblöcken und Bildergalerien – in einer relationalen Datenbank abzubilden, haben wir uns für dynamische Tabellen entschieden.

Das bedeutet: Jedes Template bekommt eine eigene Tabellenstruktur. Die erste Idee war, spezielle Tools zu schreiben, die uns diese Strukturen in der Datenbank erstellen. Doch der Aufwand wäre letztendlich zu groß gewesen. Die komplexen Strukturen mussten nun von Hand angelegt werden. Das war natürlich sehr mühsam – sowohl kompliziert zu erstellen, als auch aufwendig zu handhaben.

Vor ca. 1,5 Jahren ist uns bewusst geworden, dass wir ZOOLU enorm weiterentwickeln müssten um langfristig erfolgreich zu bleiben. Wir haben uns aber stattdessen für einen Neuanfang entschieden, und entwickeln seit August 2013 unser neues System. Aus dem oben genannten Grund hatten wir stets Ausschau nach besseren Lösungen gehalten. Dabei ist uns PHPCR besonders aufgefallen: Das Content Repository wurde extra für das Ablegen von semi-strukturierten Daten entwickelt und eignet sich damit besser für unseren CMS-Ansatz. Die dynamischen Inhalte unserer Seiten müssen nicht mehr in ein relationales Model gedrückt werden, sondern können als Baumstruktur im Content Repository abgelegt werden.

Allerdings setzen wir nicht komplett auf PHPCR. Für Daten mit klaren Strukturen, wie z.B. Kontakte, verwenden wir weiterhin eine relationale Datenbank – die wir dann aber über Doctrine abstrahieren.

Ein weiterer Vorteil von PHPCR ist die äußerst aktive Community. Die Hilfsbereitschaft der Entwickler hat mich wirklich begeistert. Das ging mittlerweile schon so weit, dass Lukas Smith, einer der Kernentwickler von Symfony CMF, uns an unserem Hackday im Oktober tatkräftig unterstützt hat.

Über PHPCR entdeckten wir dann eigentlich erst das Symfony CMF. Und damit die Möglichkeit, unser zweites großes Problem zu lösen: Das Routing.

In der ersten Version unseres CMS haben wir alle Routen an einer zentralen Stelle hardcodiert eingetragen. Standardmäßig behandelten wir hier nur die Trennung zwischen der eigentlichen Website und dem Administrations-Backend. Wenn wir nun aufbauend auf unser CMS einen Webshop oder eine Community-Funktion implementiert haben, mussten die Routen an dieser Stelle angepasst werden. Auch das Bereitstellen von speziellen Seiten für mobile Endgeräte konnte nur durch unsaubere Modifikationen an dieser zentralen Stelle durchgeführt werden – über den Sinn dieser Seiten könnte man nochmals gesondert diskutieren.

Darüber hinaus ergeben sich in unserem Kundenportfolio hauptsächlich Projekte, die neben dem Content Management auch einen sehr starken applikativen Charakter aufweisen. Häufig sind diese sehr kundenspezifisch und gehören deshalb nicht in unser Standardsystem. Um die Mischung aus Content Management und Application Framework optimal zu lösen, haben wir uns für eine Kombination aus Symfony mit den Bundles und Symfony CMF mit den Chain- und DynamicRouter entschieden.

Die kundenspezifische Logik vom Content Management lässt sich mit Bundles sehr gut vom Standardsystem trennen. Zudem lässt sich der DynamicRouter des Symfony CMF sehr einfach aus anderen Bundles um neue Routen erweitern.

Leider sind wir in unserer Entwicklung noch nicht weit genug, um explizit sagen zu können, welche weiteren Komponenten des CMFs wir verwenden können. Eine erste Evaluation hat aber ergeben, dass sich auch das BlockBundle (zum verwalten einzelner Blöcke) und das CoreBundle (um Hilfestellungen für den Publishing Prozess zu geben) als nützlich erweisen könnten.

PM: Welche Gegenargumente gab es vor dieser Wahl?

Rotter: Wir hatten eigentlich keine vernünftigen Gegenargumente, da wir sowieso jede Komponente einzeln evaluieren und nur die Teile des CMFs verwenden, die für uns wirklich sinnvoll sind. Natürlich gibt es die gleichen Bedenken wie immer, wenn man externe Frameworks oder Libraries verwendet: Werden die Komponenten aktiv weiterentwickelt? Die Antwort auf diese Frage kann man meiner Meinung nach aber auf Grund des OpenSource Gedankens relativieren, der bei diesem Projekt wirklich vorbildlich gelebt wird. Die Qualität der von uns fix verwendeten Komponenten ist bereits sehr hoch. Damit sind wir von weiteren Entwicklungen nicht allzu sehr abhängig – auch wenn ich mich über zusätzliche Features/Bugfixes und der Möglichkeit, dem Projekt in Zukunft etwas zurückgeben zu können, sehr freuen würde.

PM: Welche Vor- und Nachteile haben sich ergeben?

Rotter: Ein Teil der Entwicklungsarbeit wurde für uns gewissermaßen schon erledigt. Das ist gerade in unserem aktuellen Entwicklungsstadium ein Riesenvorteil – noch dazu, in einer Qualität, wie wir sie mit unseren beschränkten Ressourcen wohl kaum erarbeiten könnten. An dieser Stelle möchte ich auch die OpenSource-Community loben: Nicht nur der Gedanke ist allgemein sehr interessant, sondern auch die Codequalität ist außergewöhnlich hoch! Das ist wahrscheinlich teilweise auf das verteilte Arbeiten zurückzuführen, wodurch automatisierte Tests noch viel wichtiger werden. Auch der Fakt, dass man nicht von einer proprietären Blackbox abhängig ist, ist in meinen Augen ein großer Vorteil.

Einen einzigen kleinen Nachteil konnten wir bisher entdecken: In manchen Bundles wird zu viel vorgeben, weswegen wir sie nicht verwenden können. Trotzdem kann man, von den Ideen inspiriert, diese in eine eigene Implementierung mit einfließen lassen. Insgesamt freuen wir uns, ein solches Framework gefunden zu haben. Außerdem wollen wir uns selbstverständlich nicht über die Vorgaben beschweren, da sie ja nur nicht auf unsere Use Cases passen – und anderen Entwicklern vielleicht viel Arbeit abnehmen.

PM: Was wurde aus der anfänglichen Skepsis?

Rotter: Die von uns evaluierten Nachteile sind kaum der Rede wert. Damit war die Skepsis kein wirklich großes Problem. Aber ich muss auch dazu sagen, dass wir in der Entwicklung unseres eigenen CMF noch in der Anfangsphase stecken und somit eigentlich noch gar nicht über Langzeiterfahrungen berichten können. Ich blicke aber auf jeden Fall äußerst optimistisch in die Zukunft.

PM: Welche Vorteile ergeben sich für Sie langfristig?

Rotter: Da kann ich eigentlich nur noch einmal die wichtigsten Vorteile aus den vorherigen Argumenten zusammenfassen: Wir verwenden Komponenten aus dem Symfony CMF, die über eine sehr hohe Codequalität verfügen – diese werden auch aktiv weiterentwickelt. Wir haben keine Abhängigkeit zu proprietären Codes, über die wir keine Kontrolle haben. Das bedeutet für uns: Selbst wenn das allgemeine Interesse an diesem CMF verloren geht (was wir natürlich nicht hoffen), können wir im Notfall selber noch Bugs fixen.

PM: Wie verfahren Sie mit den Support von Legacy-Projekten? Stellt man diese nachträglich um, oder fährt man jetzt zweigleisig?

Rotter: Für ZOOLU werden wir jetzt nur noch Bug- und Security-Fixes umsetzen. Wir haben vor nach dem 1. Quartal des nächsten Jahres unsere ersten Projekte auf Sulu umzusetzen. Die alten Projekte werden nicht umgestellt, wir werden in einer gewissen Hinsicht also zweigleisig fahren. Die alten Projekte werden aber keine neuen ZOOLU-Features mehr bekommen.

PM: Vielen Dank!


Über MASSIVE ART Webservices
Mit mehr als 16 Jahren Projekterfahrung und über 30 Mitarbeitern zählt MASSIVE ART zu den führenden Agenturen in Vorarlberg, Österreich. Und ist die zentrale Anlaufstelle für alle Internet Themen im Dreiländereck (D-A-CH). Der Online-Spezialist begleitet seine Kunden vom Aufbau bis zur Durchführung erfolgreicher E-Business-Strategien – und darüber hinaus. Im Fokus stehen die individuelle Beratung und ein ganzheitliches Erfolgskonzept. Zu den Kernkompetenzen gehören: Konzeption & Umsetzung von Websites und mobilen Web-Apps, Entwicklung & Durchführung von Online-Marketing- Strategien, Social Marketing & Social Media Schulungen, Erstellung von Kommunikationsplattformen für Unternehmen sowie die Entwicklung des OpenSource CMFs SULU. Ganz einfach gesagt: Internet. MASSIVE ART macht das!
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -