Ich habe mich seinerzeit etwa 3 Monate intensiv in das Zend Framework eingearbeitet und danach weitere 9 Monate ausschließlich damit meine Projekte erledigt. Ab dem Moment des mentalen "Klicks", dem tatsächlichen Verständnis der zu Grunde liegenden Strukturen, war die Arbeit damit das pure Vergnügen und ich würde nie wieder zu einer herkömmlichen PHP Entwicklung greifen.
2009 war ich dann an dem Punkt, wo mir das Data-Modelling des ZF (dies wurde damals im Wesentlichen dem Benutzer - oder externer SW- überlassen) nicht mehr genügte. Auf der Suche nach Inspirationen zum Thema Content-Repositories (JSR-283) stieß ich auf FLOW3. Weitere 2 Tage später - und sicherlich begünstigt durch meine Aktivitäten mit ZF - hatte ich eine kleine Anwendung mit FLOW3 erstellt und war nur noch begeistert.
Heute arbeite ich mit beiden Frameworks und entscheide projektabhängig, welches ich wähle. Durch die geniale Struktur der ZF Bausteine, die eine Nutzung auch außerhalb des Frameworks gestatten, spricht auch nichts gegen Projekte mit ZF und FLOW3 gemeinsam (z.B. Apache Zend Search Lucene, integriert in TYPO3 als Ersatz zum Performance Killer "Indexed Search").
Wie würde ich beide Frameworks unterscheiden? Mit dem ZF habe ich Bausteine, die ich zu einer beliebigen Application verknüpfen kann - und muß. Der letzte Punkt ist wichtig. Out of the Box geht erst mal gar nichts. Erst wenn man Zend Application, Layout, ACL etc.etc. sinnvoll verknüpft hat, hat man einen Rahmen, um mit der eigentlichen Applikation zu beginnen. Dies ist bei FLOW3 anders. Wenn ich will, so habe ich direkt bei Projektbeginn bereits eine fertige Oberfläche. Diese ist zwar dann nicht ganz so flexibel wie eine, die ich mit dem ZF (individuell) erstellt hätte, aber in 99% der Projekte spielt dies eben keine Rolle.
Liegt heute der Schwerpunkt eines Projekt auf Content-Delivery, so würde ich FLOW3 nehmen. Für alles andere vielleicht eher ZF. Oder eben beides
Die Nutzung von Frameworks birgt m.E. nur ein Risiko. Wenn man auf's falsche Pferd setzt - und ein Framework, mit dem man seit Jahren arbeitet, im Orkus der Geschichte verschwindet. Und genau dies ist sicher weder bei ZF noch bei FLOW3 zu erwarten.
Kritiker von Frameworks übersehen zumeist drei wesentliche Dinge.
1. Sie nutzen zwar kein Framework, haben aber natürlich ihre eigenen, selbst entwickelten Bausteine, die sie seit Jahren pflegen - im Sinne ihres eigenen, kleinen local Frameworks. Die Frage ist jetzt natürlich, welche Qualität der Baustein
eines Entwicklers (oder gern auch einer begrenzten Gruppe) im Vergleich zur Qualität eines Bausteins eines Frameworks hat, an welchem große Gruppen von Top Spezialisten mitgewirkt haben.
2. Es gehört eine gehörige Portion Masochismus dazu, grundlegende Dinge, wie ACL, Layoutgenerator etc. selbst zu schreiben, um sich dann erst der eigentlichen Aufgabe widmen zu können. So werden 1000de schlechte Räder jeden Tag neu erfunden, obwohl es bessere Räder für lau zum mitnehmen gibt.
3. Sie kennen oft überhaupt keine Frameworks - und setzen diesen Zustand in ein "die taugen alle nix" um. Wenn sie ein Haus bauen wollten, so würden sie zuerst Formen zur Anfertigung der Lehmziegel herstellen, im Hintergrund eine geeignete Rezeptur für Zement erstellen und Jahre nach dem Ableben des Auftraggebers schließlich Richtfest feiern. Dies ist ein falsches Verständnis von Evolution.
Ich kann den Griff zu einem (geeigneten) Framework nur wärmstens empfehlen.
Beste Grüße,
Thomas