FLOW3 ein neues Framework für TYPO3 und weitere Projekte

Das es auf Dauer schwierig würde, mit weiteren Releases auf die bestehende Basis von TYPO3 aufzusetzen war schon klar. Der TYPO3-Kern wurde zu Zeiten entwickelt, als PHP allemal objektorientierte Ansätze liefern konnte. Jetzt hat sich PHP 5 zu einer echten objektorientierten Sprache entwickelt, die nun Werkzeuge liefert, die PHP-Entwicklungen durchaus in das Enterprise-Segment verlagern.
TYPO3 nun von Grund auf nach PHP 5 zu migrieren, würde einen enormen Aufwand bedeuten und letztendlich wäre auch dann nicht sichergestellt, dass diese Anpassungen auf längere Sicht bestand hat.

TYPO3 5.0 sollte also auf ein Framework aufsetzen, dass mit PHP 5 eingeführte Techniken nutzt, von Anfang an sauber strukturiert ist und somit eine solide Basis schafft, die TYPO3 auch für die nächsten Jahre als CMS in einer vorderen Position am Markt hält.

Also wurden Anforderungen definiert, Features die ein Framework mitbringen müsste, um z.B. Programmierkonzepte wie:

  • Aspect-Oriented Programming
  • Domain-Driven Design
  • Test Driven Development
  • Dependency Injection

zu unterstützen.

Eine Gegenüberstellung verschiedener Frameworks (wie z.B.: Zend, Symfony, cakePHP oder Ruby on Rails) und der Vergleich der verfügbaren Features mit den Flow3 Anforderungen…

Ein Vergleich FLOW3 zu verschiedenen Frameworks

…zeigte schnell, dass keines der verfügbaren Frameworks den Anforderungen zur vollen Zufriedenheit genügt.
Also entschloss sich das Entwicklungsteam, ein neues Framework zu schaffen, dass zum einen den benötigten Anforderungen entspricht um die Plattform für TYPO3 5.0 zu liefern und zum anderen ebenso für andere Projekte als freies Framework eingesetzt werden kann.

TYPO3 5.0 wird später ‘lediglich’ ein Modul, ein Package sein, das die CMS Funktionalitäten liefert.

FLOW3 liefert folgende Komponenten/Module:

  • Der Component Manager kümmert sich um die Erstellung, Zwischenspeicherung und Zusammenführung von Objekten. Die Objekte werden im FLOW3-Kontext Komponenten genannt.
  • Das MVC Framework liefert das Model-View-Controller-Konzept.
  • Das AOP Framework erlaubt die Nutzung der aspektorientierten Techniken.
  • Das Validation Module ist ein Framework für die Validierung und Filterung mit vorgegebenen Regeln. Auch für die Prüfung eigener Objekte können Regeln definiert werden.
  • Der Package Manager erlaubt das Herunterladen, Installieren, Konfiguration und die Deinstallation von Paketen.
  • Der Resource Manager bietet Funktionen für die Bereitstellung von Ressourcen.
  • Das Property Module liefert das Konzept des Eigenschafteneditors, mit dem Objekteigenschaften gesetzt und aufgerufen werden können.
  • Das Error Module erledigt die Behandlung von Fehlern und Ausnahmen.
  • Die Reflection API ergänzt die Reflection-Unterstützung von PHP um eine erweiterte Verarbeitung von Annotations.
  • Das Security Framework setzt Sicherheitsregeln um und stellt eine entsprechende API bereit.

Bleibt abzuwarten, ob die Entwickler die hochgesteckten Ziele umsetzen und die selbst gestellten Anforderungen erfüllen können. Wird ein Framework dieses Umfanges ressourcentechnisch noch zu managen sein, oder werden später alle TYPO3 5.0 Anwender auf Shared-Hosts von ihren Servern verbannt werden. Es ist sicher eine gute Idee, die Entwicklung weiter im Auge zu behalten, eine Menge Potential ist mit Sicherheit vorhanden.

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks