{"id":567,"date":"2011-10-09T19:31:15","date_gmt":"2011-10-09T17:31:15","guid":{"rendered":"https:\/\/sgaul.de\/?p=567"},"modified":"2014-03-13T21:34:54","modified_gmt":"2014-03-13T20:34:54","slug":"mvc-anwendungen-mit-flow-3-und-ein-ausblick-auf-das-nachste-typo-3","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2011\/10\/09\/mvc-anwendungen-mit-flow-3-und-ein-ausblick-auf-das-nachste-typo-3\/","title":{"rendered":"MVC-Anwendungen mit Flow 3 und ein Ausblick auf das n\u00e4chste Typo 3"},"content":{"rendered":"
Auf der gerade tagenden \u201eT3CON11\u201c kommen die Typo-3-Entwickler zusammen und beraten \u00fcber die Zukunft. Nebenbei zeigen Sie aber auch, was sie schon haben. Nachdem ich in den letzten Monaten doch eher negative Eindr\u00fccke von Typo 3 sammeln musste, machen das grundlegende Framework Flow 3 und die ersten Bilder von Typo 3 5 einen sehr guten Eindruck.<\/p>\n
<\/a>Das MVC-Framework Flow 3 soll noch im Oktober diesen Jahres erscheinen. Ich habe daher mal einen kurzen Blick darauf geworfen und bin \u00fcber einige tolle Sachen gestolpert, die ich sehr \u00fcberzeugend finde.<\/p>\n In Flow 3 erzeugt man Webapplikationen weitgehend \u00fcber die Kommandozeile. Die n\u00f6tigen Dateistrukturen und wesentliche Inhalte von Controllern, Models, Repositorys und Templates werden bereits erzeugt und m\u00fcssen lediglich angepasst werden. So erzeugt man f\u00fcr einen Blogpost beispielsweise ein recht einfaches Grundger\u00fcst, indem man<\/p>\n im Projektverzeichnis ausf\u00fchrt. Dies erzeugt einen neuen Controller \u201ePostController\u201c (ein Actioncontroller ist den Zugriff durch den Browser; man kann auch Commandcontoller f\u00fcr die Kommandozeile erstellen). Hierbei werden gleich wesentliche Aktionen wie Hinzuf\u00fcgen und \u00e4ndern erzeugt (–generate-actions<\/em>). Die Option –generate-related<\/em> erzeugt automatisch alles, was noch fehlt: Dies ist hier ggf. das Paket TYPO3.Blog<\/em> (vorletzter Paramter) und das Model Post, welches passend zum Controller existieren muss. Der letzte Parameter benennt den Controller (ohne das Suffix Controller) und impliziert eine Verbindung zu einem entsprechenden Model.<\/p>\n All das nimmt einem sehr viel Dateiverwaltung und Code-Erzeugung ab. Einen weiteren sch\u00f6nen Einblick in die Kommandozeilenf\u00e4higkeiten bekommt man durch das folgende Video:<\/p>\n [vimeo clip_id=“28987131″]<\/p>\n Eine weitere sch\u00f6ne Sache ist die Verwendung von Doctrine 2: Statt sich hier etwas neues zu \u00fcberlegen, setzt man auf diese bew\u00e4hrte L\u00f6sung, um Objekte ohne viel Aufwand auf Datenbanken zu mappen. Hierf\u00fcr ist etwas mehr Aufwand im Model n\u00f6tig. Alle Attribute m\u00fcssen mittels PHP-Doc typisiert werden:<\/p>\n Anschlie\u00dfend kann man diese Models aber mittels eines einfachen Kommandozeilenaufrufs in der Datenbank erzeugen<\/p>\n oder sp\u00e4ter nach \u00c4nderungen aktualisieren:<\/p>\n Doctrine<\/a> ist mittlerweile sehr gut erprobt und bietet unz\u00e4hlige M\u00f6glichkeiten.<\/p>\n Was ich bisher gesehen habe, finde ich absolut intuitiv und auch einfacher, als ich es von anderen Frameworks kenne.<\/p>\n Das einzige, wovor ich auf lange Sicht doch ein wenig Angst habe, ist, dass die Entwickler die Performance \u00e4hnlich wie bei bisherigen Typo-3-Entwicklungen zu weit hinten anstellen. Schon hier auf dem eigenen Rechner dauerte es manchmal doch erschreckend lange, bis eine Seite vollst\u00e4ndig erzeugt wurde. Allerdings war dies meist nur beim ersten Aufruf zu beobachten. Ich denke daher, dass Caching hier \u00fcber die Geschwindigkeitsprobleme hinweg helfen soll.<\/p>\n Wer selber sehen m\u00f6chte, was Flow 3 kann, dem sei das Quick-Start-Tutorial<\/a> ans Herz gelegt.<\/p>\n Das neue Typo 3 wird wohl erst Ende n\u00e4chsten Jahres erscheinen, dennoch zeigte T3N.de in einem Artikel<\/a> mit Video ein paar sch\u00f6ne erste Eindr\u00fccke (das Interview davor ist… merkw\u00fcrdig, aber wenigstens kurz):<\/p>\nKommandozeile<\/h3>\n
.\/flow3 kickstart:actioncontroller\r\n --generate-actions\r\n --generate-related\r\n TYPO3.Blog Post<\/pre>\n
Persistenz an Bord<\/h3>\n
\/**\r\n * The name\r\n * @var string\r\n *\/\r\nprotected $name;<\/pre>\n
.\/flow3 doctrine:migrate<\/pre>\n
.\/flow3 doctrine:update<\/pre>\n
Wirkt \u00fcberzeugend – aber was ist mit der Performance?<\/h3>\n
Typo 3 5<\/h2>\n