typo3_flow

TYPO3 Flow im Live-Einsatz

Da TYPO3 Flow bereits seit längerem live ist, folgt heute ein Beitrag zu Erfahrungen in der Praxis mit Flow von Gast-Autor David Sporer, Gründer von Passcreator.

TYPO3 Flow wurde anfangs unter dem Namen FLOW3 entwickelt und ist die Basis von TYPO3 Neos, dem neuesten Content Management System der TYPO3 Familie. Flow kann als Framework unabhängig von Neos genutzt werden. Hierbei ist grundsätzlich der Ansatz erkennbar, dass Flow nicht nur eine Sammlung von Bibliotheken sein will, sondern Entwicklern als Basis für Web Applikationen dienen will und hierbei einige Dinge vorgibt, durch die man sich auf das wesentliche konzentrieren kann: Die Entwicklung.

Bei Passcreator ist Flow bereits seit 2012 im Einsatz und neben den Vorteilen, wie Domain Driven Design oder die Verwendung von Kontexten, was die Konfiguration von Test- und Live-Umgebungen beispielsweise sehr komfortabel macht, wird David im Folgenden auf ein paar Dinge eingehen, die bei der Entwicklung von Passcreator am hilfreichsten waren.

Sauberer, lesbarer Code

Flow hilft sauber zu programmieren. Durch die technischen Vorteile wie Dependency Injection spart man sich Code-Zeilen. Durch klare Coding-Guidelines ist sichergestellt, dass sinnvolle und aussagekräftige Namen für Klassen und Variablen verwendet werden und der Code gut les- und wartbar bleibt.

Aspect Oriented Programming (AOP)

AOP bedeutet, dass Elemente, die an vielen Stellen im System verwendet werden, aber eigentlich nicht direkt etwas mit der eigentlichen Anwendungslogik zu tun haben, getrennt behandelt werden. Konkrete Beispiele sind Logging oder  Sicherstellen der korrekten Sprachanzeige einer Seite. In einem Aspekt wird zuerst ein JoinPoint definiert. Dieser legt fest, an welcher Stelle der Anwendung der Code des Aspekts ausgeführt wird. Sollen z.B. alle Löschungen im System geloggt werden, kann vor jeder deleteAction eines Controllers in ein Logfile geschrieben werden, welcher User welches Objekt löscht. Die eigentliche deleteAction jedoch muss sich nur um das Löschen des Objekts kümmern. Wird künftig ein neuer Controller mit einer neuen deleteAction erstellt, kümmert sich Flow automatisch darum, dass auch hier immer geloggt wird was von wem gelöscht wurde.

Command Line Controller

In vielen Webanwendungen müssen im Hintergrund Aufgaben ausgeführt werden, die entweder zu lange dauern wenn man sie direkt beim Seitenaufruf des Nutzers ausführt, oder die zu bestimmten Zeiten ausgeführt werden. TYPO3 Flow bringt hier sog. Command Line Controller mit. Dadurch lassen sich Klassen schreiben, die über die Command Line ausgeführt werden können. Bei Passcreator ist beispielsweise ein Abomodell integriert. Hierbei wird jeweils am Monatsersten die Anzahl erstellter Passbook-Karten zurückgesetzt und die Anzahl erstellter Karten des Vormonats zur Rechnungsstellung gespeichert. Hierfür wurde einfach ein Billing-Controller erstellt, der die createInvoicesCommand-Methode enthält. Da dieser Controller als Command-Controller erstellt wurde, ist er jetzt automatisch über ./flow billing:createinvoices aufrufbar und lässt sich so auch für Cronjobs verwenden.

Fluid Templating-Engine

Flow bringt als Templating-Engine Fluid mit und macht dadurch das Handling von Layouts sehr komfortabel. Alle wiederkehrenden Elemente können in Partials ausgelagert werden. Diese werden immer dort verwendet, wo Passbook-Karten zum Download angeboten werden. Im Partial selbst wird wiederum ein eigener View-Helper verwendet, der basierend auf dem verwendeten Client, den richtigen Download- und Hilfe-Link anzeigt. D.h. Desktop-User sehen einen Link um den Link zur Passbook-Karte per Mail zu verschicken, iPhone-User erhalten einen Link zur iPhone-Hilfe, Android-User zur Android-Hilfe usw. Diese Logik kann durch die Auslagerung in ein Partial immer dort, wo sie notwendig ist durch eine Zeile Code eingebunden werden.

Fazit: Flow ist erwachsen geworden

Passcreator setzt Flow bereits seit Version 1.0 ein (damals noch als FLOW3).
Seitdem haben sich primär zwei Dinge verändert:
Die Geschwindigkeit, und Flow ist seitdem „kompletter“ geworden. Anfangs war es teilweise noch notwendig für bestimmte Standardaufgaben wie Fehlerseiten Workarounds zu nutzen. Das ist inzwischen nicht mehr nötig, man kann es nun einfach konfigurieren. Eine Konstante bei der Entwicklung mit Flow ist der Support über die Community. Man bekommt sowohl über Mailinglisten, als auch über IRC sehr schnell Hilfe, sowohl bei Einstiegsproblemen, als auch bei komplexeren Fragen.

Zu Passcreator

Passcreator ist eine Online-Anwendung mit der in einem grafischen Editor digitale Eintrittskarten, Kundenkarten, Gutscheine und Coupons erstellt, verteilt und verwaltet werden können.

Digitaler Mitgliedsausweis Tanzschule AKE Esslingen (mockuphone.com)

Digitaler Mitgliedsausweis Tanzschule AKE Esslingen (mockuphone.com)

Der Editor macht es möglich ohne Programmierkenntnisse Kampagnen zur Kundenbindung durchzuführen. Werden die Karten per Newsletter oder über einen Link in sozialen Netzwerken verteilt, stellt Passcreator automatisch sicher, dass die Kunden immer die richtige Darstellung für ihr Endgerät erhalten, um die Nutzung so intuitiv und einfach wie möglich zu machen. Die Download-Seiten selbst lassen den Nutzer per White-Labeling direkt erkennen, von welchem Unternehmen die Karte zur Verfügung gestellt wird. Auch direkt in den Karten lässt sich das Corporate Design abbilden. Sobald die Karte auf dem Smartphone gespeichert ist, kann der Inhalt jederzeit nachträglich verändert werden. Die geänderten Inhalte werden automatisch in Push-Notifications angezeigt. Ortsbasierte Erinnerungen können entweder aufgrund von GPS-Koordinaten angezeigt werden, oder wenn sich der Nutzer in der Nähe eines iBeacons befindet. Dadurch zeigt das Smartphone die Karte bereits im Sperrbildschirm des Smartphones an, wenn der Nutzer sich z.B. mit einer Rabattkarte der Kasse nähert.

Passbook-Karten bieten neben der Möglichkeit Loyalty-Kampagnen durchzuführen, oder digitale Kundenkarten zu erstellen, eine einfache Möglichkeit mit den Nutzern zu kommunizieren. Auf iPhones können die Karten direkt in der vorinstallierten Passbook-App gespeichert werden, für Android, Windows Phone und BlackBerry sind Apps von Drittanbietern verfügbar. Bislang zählen zu Passcreators Kunden primär Fitnesstudios, Tanzstudios, Eventveranstalter und Marketingagenturen.

Über Gast-Autor David Sporer:

David Sporer spezialisiert sich seit 2009 auf PHP, TYPO3 und TYPO3 Flow. 2012 hat er Passcreator gegründet und seitdem kontinuierlich weiterentwickelt, mit dem Ziel die Technologie für den Mittelstand einfach und ohne Programmierkenntnisse nutzbar zu machen.

 

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

Benachrichtige mich zu:
avatar

wpDiscuz
Weitere Beiträge zum Thema
Female Commerce – Was Frauen beim Onlineshopping wünschen
Cache, Optimizer, DynamicCategories – neue Magento-Module von und mit Flagbit
Modul für Gutscheinconnection veröffentlicht
Flagbit auf der MagentoLive Germany in München