FLOW3 und TYPO3 Phoenix werden produktiv
Der Online-Verkauf individuell bedruckter Textilien stellt spezielle Anforderungen an die zugrunde liegende Webanwendung. Verschiedene automatisierte Prüfungen der Druckdaten, individuell gestaltbare Produkte mit individuell berechneten Preisen, ein hoher Supportaufwand beim Bestellprozess und weitere manuelle Auftragsprüfungen lassen „out of the box“-Systeme ausscheiden.
Warum kein ZF oder Symfony2?
Die umsetzende Agentur netlogix Media wurde vor allem deshalb mit dem Projekt betraut, da bereits eine E-Commerce-Plattform vorhanden war (basierend auf dem Katalogstandard BMEcat), die in der Lage ist, allen speziellen Anforderungen Rechnung zu tragen. Da diese auf Extbase basiert, also der Rückportierung von FLOW3 in TYPO3 4.x, fiel die Entscheidung für FLOW3 und gegen ein anderes Framework wie Symfony2 oder Zend Framework leicht.
Zudem verfügt die Agentur dank einer langjährigen Entwicklungsbeteiligung an FLOW3 über entsprechendes Know-how. Im Rahmen der Umsetzung des Projekts war es besonders erfreulich, zu sehen, dass die Portierung des Extbase-Codes nach FLOW3 mit einigen Umbenennungen und ein paar kleinen Anpassungen hier und da problemlos vonstatten ging – und das, obwohl die Entwickler über 200 Klassen portieren mussten. Für die Agentur ist das Extbase-Projekt als Übergangstechnologie zwischen TYPO3 4.x und TYPO3 5.0 Phoenix schon jetzt ein voller Erfolg.
Fokus auf Domain-Logic geht auf
Die ausführende Agentur musste während der Entwicklung auch an Framework-Bugfixes oder kleineren fehlenden Features arbeiten. Allerdings dürfte dieser Umstand nicht überraschen, denn schließlich existieren bisher so gut wie keine anderen produktiven Projekte auf Basis von FLOW3. Dennoch präsentiert sich der Code der eigentlichen Anwendung und damit das, was andere Entwickler zukünftig zu schreiben haben, wenn sie mit FLOW3 als Framework arbeiten, extrem kurz und übersichtlich. Es finden sich nur sehr wenige Zeilen Code, die nicht direkt die Business-Logik abbilden. FLOW3 leistet ganze Arbeit bei der Bereitstellung der Infrastruktur.
Ein anschauliches Beispiel hierfür ist das Vorgehen bei der Implementierung der Sicherheitsrichtlinien. Diese wurden zunächst vollständig ausgeklammert. Die ausführende Agentur implementierte alle Funktionen, ohne zu prüfen, ob die einzelnen Operationen für den aktuellen Benutzer überhaupt erlaubt sein sollen. Die entsprechenden Richtlinien fügten die Entwickler einfach nach Fertigstellung der Features per „Konfiguration“ hinzu. Der Anwendungscode bleibt entsprechend schlank und übersichtlich.
Auch die kürzlich eingeführte neue Persistenzschicht auf Basis von Doctrine2 [1] hat sich als äußerst praktikabel erwiesen. FLOW3 schafft es auch hier, viele der notwendigen Metadaten für Doctrine2 automatisch zu erfassen und sichert so ein extrem schnelles Vorankommen beim Schreiben der Domain-Model-Klassen.
Zudem hat sich das Feature des Session-Scopes als nützlich erwiesen, mit dem Entwickler Objekte direkt in die Session legen können. Es muss sich also kein Entwickler mehr darum kümmern, Session-Daten zu serialisieren und zu deserialisieren, stattdessen arbeitet er einfach mit den gleichen Domain-Objekten, die er auch sonst verwenden und direkt persistieren kann. Und all das funktioniert lediglich durch die kleine Annotation „@scope session“, keine Konfiguration, nichts weiter.
Front- und Backend parallel
Die technischen Neuheiten und Paradigmen hören sich nicht nur gut an, sondern haben auch in der Praxis spürbare Auswirkungen auf den Entwicklungsprozess. Besonders positiv heben die Entwickler die Möglichkeit hervor, parallel an den Features des Projekts arbeiten zu können. Die klare Separierung von verschiedenen Aufgaben in Domain-Models sowie Controller und Views ermöglicht eine problemlose parallele Entwicklung von Business-Logic und Frontend. Gerade Fluid stellt sich dabei als extrem komfortables Werkzeug für übersichtliche Templates und der verständlichen Verknüpfung von Model-Funktionalität und deren Präsentation heraus. Man konnte noch nie so leicht etwas an der Präsentation ändern, ohne gleich den PHP-Code der Anwendungslogik anfassen zu müssen. Die Entwickler der Agentur konnten sichtbar Abhängigkeiten reduzieren und so ein verständlicheres und übersichtlicheres Ergebnis erreichen.
Phoenix-Features überzeugen
Unter textilwelten.de findet sich nicht nur eine eigenständige FLOW3-Anwendung. Vielmehr präsentiert sich hier eine der ersten Websites, die auf TYPO3 5.0 Phoenix basiert. Auch wenn das User-Interface des neuen CMS noch in den Kinderschuhen steckt, stehen unter der Haube schon viele CMS-Features bereit. Als wichtigstes Feature ist hier die Integration des Aloha-Editors zu nennen, mit der man alle Texte direkt auf der Seite pflegen kann. Wer diesen neuen Editor – der ein zentraler Bestandteil von Phoenix sein wird – noch nicht kennt, sollte sich Aloha [2] unbedingt mal näher anschauen. Zusätzlich zu diesem Editor nutzt die Website für World of Textiles bereits heute zahlreiche Features des neuen CMS, darunter TypoScript2-Templates, Workspaces oder die Einbindung aller FLOW3-Teile als Phoenix-Plugins. Auch wenn noch einige Baustellen existieren, steht für die Entwickler und Redakteure bereits jetzt fest, dass Phoenix einfach Spaß macht!
FLOW3 und Phoenix einsetzen
Die Frage, die viele Entwickler beschäftigen dürfte: Wann kann man sein erstes FLOW3- oder Phoenix-Projekt starten? Zu FLOW3 lässt sich eine sehr konkrete Aussage treffen: Die Features von FLOW3 1.0 sind fertig, die Dokumentation [3] wird derzeit noch aktualisiert. Natürlich wird es noch ein paar Bugfixes bis zum finalen Release benötigen, aber danach ist das Framework bereit für die ersten Projekte.
Bei Phoenix kommt es auf die jeweiligen Anforderungen an. In nächster Zeit sind hier sicherlich nur Projekte, die wie im gezeigten Beispiel nur einen Teil der CMS Features verwenden, realisierbar. Wer allerdings keine Scheu vor ein paar Ecken und Kanten hat, sollte es sich auf keinen Fall nehmen lassen, bereits erste Gehversuche zu unternehmen. Der größte Stolperstein dürfte hier im Moment in der fehlenden Dokumentation liegen. Allerdings steht das Kernteam in den FLOW3- beziehungsweise Phoenix-Mailinglisten [4] & [5] bei Fragen gerne unterstützend zur Verfügung.