FLOW3

FLOW3
FLOW3
Logo von FLOW3
Entwickler Robert Lemke, TYPO3 Association
Aktuelle Version 1.0.0
(20. Oktober 2011)
Betriebssystem plattformunabhängig
Programmier­sprache PHP
Kategorie Framework
Lizenz GPL, Version 3 oder höher (Freie Software)
Deutschsprachig teilweise
flow3.typo3.com

FLOW3 ist ein in PHP geschriebenes freies Applikation-Framework, dessen erste finale Version am 20. Oktober 2011 erschien. Es wurde zwar in erster Linie als Grundlage der TYPO3-Version 5.x entwickelt, lässt sich aber auch unabhängig von TYPO3 einsetzen. Es eignet sich generell für die Entwicklung von Software in PHP mit einem mittleren oder hohen Umfang.

Inhaltsverzeichnis

Geschichte

Im Jahr 2006 wurden erste Überlegungen zu einem Nachfolger von TYPO3 und damit auch zu FLOW3 angestellt.[1]

Seit 2007 arbeiten Robert Lemke und Karsten Dambekalns in Vollzeit an FLOW3.[2] Im selben Jahr begannen konkrete Bemühungen um die Entwicklung von TYPO3 5, wofür zunächst ein Refactoring des Kerns vorgesehen war. Jedoch wurde schnell klar, dass neue Konzepte umfassende Änderungen erfordert hätten, die letztendlich die Stabilität des Systems hätten gefährden können. So entschloss man sich, sich für die neue Version von der alten Codebasis zu trennen, die in den Anfängen von TYPO3 wurzelt und teilweise nicht objektorientiert ist.

Ziel war es, eine moderne und zukunftssichere Basis für weitere TYPO3-Versionen zu schaffen. Einhergehend mit der Verwendung von modernen Konzepten, Techniken und Entwurfsmustern hatten die Entwickler zu Beginn unter anderem mit Problemen der in PHP 5.3 neu eingeführten und damals noch fehlerbehafteten Implementierung von Namespaces zu kämpfen[3].

Im Juni 2009 erschien mit FLOW3 1.0.0 Alpha 1 das erste Build.

FLOW3 wird mit einem vordefinierten Set an Rollen ausgeliefert. Diese Rollen bieten jeder Benutzergruppe sinnvolle Voreinstellungen, mit denen sie ihre Arbeiten einfach und effizient erledigen kann.[4]

Im Oktober 2011 wurde die finale Version veröffentlicht. Gegenwärtig wird das System zum Beispiel von mehreren großen Konzernen in Deutschland eingesetzt.[5]

Zukünftig soll es möglich sein, Daten einer bestehenden TYPO3-Installation vollautomatisch nach FLOW3 zu migrieren. So wird man Inhalte oder Fluid-Templates übernehmen können. Für TypoScript-Templates ist diese Möglichkeit nicht geplant.[6]

Paradigmen

Die Entwickler von FLOW3 setzen auf eine Reihe von Paradigmen und Entwurfsmustern, die teilweise in der PHP-Szene als innovativ anzusehen sind. Diese Konventionen helfen dem Programmierer, sauber zu programmieren und Fehler zu vermeiden.[7] Zu den Wichtigsten gehören:

Bei der Programmierung von FLOW3 wurde konsequent darauf geachtet, dass selbst-geschriebener Code nur minimale Abhängigkeiten von der API von FLOW3 hat. Dadurch lassen sich Module, die ursprünglich für andere Systeme (etwa Symfony) geschrieben wurden, mit wenig Aufwand mit FLOW3 nutzen.[10] Auf diese Art kann selbst-geschriebener Code auch bei Veränderungen der Codebasis von FLOW3 in vielen Fällen ohne Anpassungen weitergenutzt werden.[11]

FLOW3 basiert so auf einigen Grundprinzipien, die für den Benutzer transparent sind und ihm die Arbeit möglichst einfach machen. So kann der Benutzer z.B. Kundeninformationen ausgeben, indem er nur drei oder vier Zeilen PHP-Code schreibt und ein Fluid-Template mit HTML-Code erstellt. Hat der Benutzer dabei die Konventionen befolgt, wendet das FLOW3-Framework automatisch seine Features auf den Code an (z.B. seine Security-Baselines).

Auch im Java WCMS Bereich finden der 5.x-Zweig von TYPO3 und dessen Basis FLOW3 für seine moderne Architektur Beachtung,[12] z.B. wegen der guten Durchschaubarkeit des Codes[13].

Fluid Template-Engine

FLOW3 besitzt seine eigene Template-Engine mit dem Namen Fluid[14]. Obwohl es bereits eine Reihe von Template-Engines gibt, genügte keine den Anforderungen der Entwickler. Beim Entwurf von Fluid lag das Hauptaugenmerk auf folgenden Eigenschaften:

  • Unterstützung von Logik (wie Bedingungen, Schleifen oder Iteration über Arrays)
  • Verbot von PHP-Code in der Template-Datei
  • Einfache Erweiterbarkeit
  • Einfache Syntax
  • XML-Struktur um eine automatisierte Validierung von Templates zu ermöglichen

Ein Beispiel:

<f:for each="{blogPosts}" as="post">
  Title: {post.title}<br /></f:for>

blogPosts ist ein PHP-Array, das im PHP-Code an Fluid übergeben werden muss. Im Template lässt sich mit diesem Beispiel über dieses Array iterieren und der Titel jedes Post-Objekts ausgeben.

Die Tags, die sich zur Steuerung und Manipulation der Ausgabe in das Template einsetzen lassen, werden View Helper genannt. Durch die Möglichkeit relativ einfach selbst View Helper zu entwickeln ist die Erweiterbarkeit von Fluid gegeben.

Entwicklung

Am 2. Juni 2009 erschien mit FLOW3 1.0.0 Alpha 1 das erste Build.[15]


In der Folgezeit erschienen ungefähr monatlich insgesamt 14 Alpha-Versionen, bis FLOW3 im August 2011 reif für die Beta-Phase war.[16] In dieser frühen Entwicklungszeit hat sich die API naturgemäß noch verändert; teilweise auch so, dass sie nicht rückwärtskompatibel ist.

Das FLOW3-Team selbst besteht momentan aus etwa elf Entwicklern, die aktiv am Framework arbeiten. Hinzu kommen sog. Early Adopters, die das System bereits für unterschiedlichste Zwecke nutzen und Feedback geben.[17]

Am 20. Oktober 2011, gut zwei Jahre nach der Veröffentlichung der ersten Alpha-Version, wurde die finale Version 1.0.0 freigegeben.

Wichtige Versionen

Legende: Ältere Version; nicht mehr unterstützt Ältere Version; noch unterstützt Aktuelle Version Aktuelle Vorabversion Zukünftige Version
Paket-Name Version Unter-
version[18]
Codename Veröffentlichung Wichtigste Änderungen
FLOW3 1.0.x Ältere Version; nicht mehr unterstützt: 1.0.0 Alpha 1 2. Juni 2009 Erste Alpha-Version veröffentlicht.
Aktuelle Version: 1.0.0 Insomnia[19] 20. Oktober 2011[20] Aktuelle Version. Release von Version 1.0.0.
1.1.x Zukünftige Version: 1.1.0 20. Dezember 2011[21] Verbesserung der Performance, Ausbau des Package Repository. Das Package Repository ist ein Marktplatz für Erweiterungen vergleichbar mit dem TYPO3 TER.[22]
1.2.x Zukünftige Version: 1.2.0 2012[23] Lokalisation des Frameworks (z.B. Objekte, Label, URLs...)[24]

Der aktuelle Entwicklungsstand kann im Git-Repository[25] und im Bugtracker[26] verfolgt werden.

Zusammenhang mit TYPO3

Initiative

FLOW3 wurde von der TYPO3-Community initiiert und wird hauptsächlich von TYPO3-Core-Developern entwickelt. Das primäre Ziel ist eine Basis für TYPO3-Version 5 zu schaffen.

Koordination

Die Entwicklung und Herausgabe von FLOW3 wird - genau wie die von TYPO3 - von der TYPO3 Association koordiniert.

Annäherung von TYPO3 4.x

Um der Community später den Umstieg und die Migration von Modulen von TYPO3 Version 4 auf Version 5 zu erleichtern,[27] wurden seit TYPO3 4.3[28] viele in FLOW3 zum Einsatz kommende Techniken portiert. Dazu gehört auch die im Zuge von FLOW3 entwickelte Template-Engine Fluid. Mit einer Beispiel-Extension auf Extbase-Basis[29] wurde die Möglichkeit demonstriert, bereits mit der Herausgabe von TYPO3 4.3 Paradigmen wie MVC oder Domain-Driven Design in der Praxis einzusetzen.[30]

Außerdem können die neuen Konzepte so am weit verbreiteten 4.x-Zweig von TYPO3 getestet werden, was die spätere Portierung zum 5.x Zweig erleichtert.

Diese Annäherung des 4.x-Zweiges von TYPO3 an FLOW3 wurde auf den Transition Days 2008[31][32] in Berlin beschlossen.

Einzelnachweise

  1. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 3., abgerufen am 22. Oktober 2011.
  2. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 3., abgerufen am 22. Oktober 2011.
  3. Karsten Dambekalns: TYPO3 5.0 - T3CON08, T3TD08 und das "Berliner Manifest". In: T3N_Magazin, Nr. 14 2008. Abgerufen am 20. Dezember 2009.
  4. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 3., abgerufen am 22. Oktober 2011.
  5. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  6. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 3., abgerufen am 22. Oktober 2011.
  7. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren., abgerufen am 22. Oktober 2011.
  8. http://t3n.yeebase.com/magazin/aspektorientierte-programmierung-flow3-enterprise-feature-221181/ Artikel zur AOP in FLOW3
  9. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren., abgerufen am 22. Oktober 2011.
  10. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren., abgerufen am 22. Oktober 2011.
  11. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  12. http://dev.day.com/microsling/content/blogs/main/modernwcmsarchitecture.html Artikel im Dev Blog der Firma Day
  13. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  14. http://t3n.de/magazin/neue-template-eingine-flow3-typo3-4x-fluid-templating-222468/
  15. http://flow3.typo3.org/news/0/1/
  16. Release Notes von FLOW3beta1, abgerufen am 22. Oktober 2011
  17. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  18. http://flow3.typo3.org/download/ Informationen zum Supportzyklus für FLOW3-Versionen
  19. Information zum internen Codenamen von FLOW3 1.0 auf dem offiziellen Twitter-Kanal des Projekts
  20. Informationen zum Download von FLOW3
  21. Roadmap von FLOW3
  22. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  23. Roadmap von FLOW3
  24. Robert Lemke: Robert Lemke im Interview zu FLOW3: Indem du durch Konventionen dazu geführt wirst, sauber zu programmieren, Seite 2., abgerufen am 22. Oktober 2011.
  25. http://git.typo3.org/FLOW3/Distributions/Base.git/
  26. http://forge.typo3.org/projects/flow3-distribution-base/roadmap
  27. http://www.golem.de/0911/71550.html
  28. http://www.heise.de/newsticker/meldung/Typo3-4-3-ist-da-872660.html
  29. http://typo3.org/extensions/repository/view/blog_example/current/
  30. Oliver Hader: TYPO3 4.3 - Neuerungen für Anwender und Entwickler kurz vorgestellt. In: T3N_Magazin. Nr. 18, 2009, S. 106.
  31. http://news.typo3.org/news/article/a-common-roadmap-for-typo3/
  32. Jochen Rau: Die Zukunft der Extension Entwicklung. In: T3N_Magazin. Nr. 16, 2009, S. 126–129. Abgerufen am 20. Dezember 2009.

Weblinks

Literatur

  • Neues von FLOW3., Titelthema in PHP Magazin Nr. 7, 2011.

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • TYPO3 — 4.4 Backend Basisdaten …   Deutsch Wikipedia

  • Typo3 — 4.0.2 Backend Basisdaten …   Deutsch Wikipedia

  • Typo3-Live — TYPO3 TYPO3 4.0.2 Backend Basisdaten …   Deutsch Wikipedia

  • Typo 3 — TYPO3 TYPO3 4.0.2 Backend Basisdaten …   Deutsch Wikipedia

  • TYPO3 — Backoffice de TYPO3 4.4 …   Wikipédia en Français

  • Aspekt-orientierte Programmierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspektorientierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Liste De Frameworks PHP — Ci dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles. Agavi un framework open source écrit en PHP5 (site du projet) Akroweb developper un framework complet pour créer son site web rapidement, open source, écrit en PHP… …   Wikipédia en Français

  • Liste de frameworks PHP — Ci dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles. Agavi un framework open source écrit en PHP5 Atomik Framework un micro framework open source écrit en PHP5 Adaptive Website Framework (AWF). CakePHP un framework… …   Wikipédia en Français

  • Liste de frameworks php — Ci dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles. Agavi un framework open source écrit en PHP5 (site du projet) Akroweb developper un framework complet pour créer son site web rapidement, open source, écrit en PHP… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”