Hallo zusammen,
FLOW, Fluid, ExtBase, ExtJS sind Worte, die mir nicht geläufig sind. Da wollte ich mich gestern mal mit dem Thema Templating beschäftigen und da läuft mir das Wort Fluid über die Finger. Im Quellcode aber sind Massig Classen ala tx_extbase...::registerPlugin. Demnach baut Fluid auf Extbase auf, aber deshalb finde ich noch lange nicht mehr Dokumentationen darüber.
Jetzt habe ich eine Doku zu FLOW gefunden. Ist das jetzt die Basis von Extbase und hat ExtBase was mit ExtJS zu tun?
Kann irgendjemand dieses Durcheinander lösen?
Stefan
Hallo,
FLOW3 ist ein eigenständiges PHP-Framework, das auch TYPO3 5.0 benützen wird. Das Templating-System von FlOW3 wurde eigens entwickelt und nennt sich fluid.
Da Version 5.0 noch einige Zeit brauchen wird, aber schon jetzt Entwickler die neuen Technologien kennen lernen sollen und der Umstieg möglichst einfach zwischen 4.x und 5.0 sein soll, werden Teile von FLOW3 auf TYPO3 4.x portiert. Dazu gehören eben auch extbase (das die Basis des ganzen unter 4.x ist) und fluid.
Du kannst also schon jetzt (zumindest mit der 4.3) Extensions beinahe so schreiben wie es mit 5.0 sein wird und diese lassen sich dann auch einfach auf 5.0 portieren.
Nun klarer?
Georg
Danke Dir. Ich hab das mal mit eigenen Worten und ein paar weiteren Infos niedergeschrieben:
OK...FLOW3 ist das PHP-Framework. Heißt: FLOW3 ist das fette Teil, dass jetzt/in Zukunft Daten, die über Objekte definiert/gesetzt werden, nahezu von selbst in die Datenbank schreibt. So zumindest die beiden Videos von Herrn Kurfürst und Rau.
ExtBase ist eine Klasse. Ein Teil von FLOW3 also. "ext" steht für Extension und ist demnach die neue Klasse mit Funktionen zur Integration von Extensions in TYPO3. Demnach also die neue class.t3lib_extmgm.php.
ExtJS ist ein JavaScript-Framework mit dem z.B. der neue Recycler programmiert wurde. ExtJS ist also für die Usability in TYPO3 zuständig.
Fluid ist ein Templatesystem ähnlich dem von Smarty, außer dass Fluid vollständig auf PHP5-basierenden Systemen läuft und mit viewHelpers nahezu unendlich erweiterbar ist.
Au man, hab grad noch was gefunden: MVC-Framework. Ist das jetzt nur ein anderer Name oder wirklich ein weiteres PHP-Framework.
In der FLOW3-Doku wird PHP 5.3 vorausgesetzt, aber das blog_example läuft bei mir auch unter 5.2.9. Bin da noch etwas verwirrt oder liegt das daran, dass nicht alle Klassen wie z.B. die extbase zwingend 5.3 vorraussetzen?
Stefan
Hallo,
extbase ist lediglich der Konnektor, der im alten 4.x die Möglichkeit schafft, auf fluid + prinzipien von FLOW3 zu setzen! Mit 5.0 brauchts kein extbase mehr.
ExtJS ist ein JS-Framework wie Prototype, Mootools usw und wird im Backend an manchen Stellen eingesetzt und soll mehr werden.
MVC ist die "neue" Art des Programmierens mit Model-View-Controller. Das ist kein Framework aber ein Framework kann das benützen. Alternativen wären das "gute" alte prozedurale.
5.3. wird vorausgesetzt, aber manches/vieles wird wohl unter 5.2.9 laufen, aber besser ist dann auf das zu setzen was vorausgesetzt wird
Georg
Gesundheit! Hat da jemand geniest.
Und ich dachte schon, das alles wären Dinge, die man mit Messer und Gabel essen kann. #giggle#
Nun haben wir wieder etwas dazu gelernt. Danke.
Ich bin grad am Lesen wie'n Bekloppten. Schau Dir mal die Verzeichnisstruktur an. Was sind Modelle, Repositories, Domänen, Entities, valueObjects, blablabla
Hab nach ner halben Ewigkeit dann herausgefunden, dass das ganze Teil was mit DDD also dem sogenannten Domain-driven Design zu tun hat und erst wenn man das System erkannt hat, dann fängt die Verzeichnisstruktur überhaupt erst an interessant zu werden und DANN erst versteht man auch den Hintergedanken von dem neuen Kickstarter mit seinen Enitäten (ähnlich Objekte, die auch nach der Instanziierung verändert werden können, wie die Telefonnummer einer Person) und value Objects (die nach der Instanziierung selbst nicht mehr geändert werden können, wie zum Beispiel Verträge, die über einen bestimmten Zeitraum festgesetzt wurden).
Zu DDD mal ne gute Doku:
http://ralfw.blogspot.com/2009/09/modelle-fur-geschaftsanwendungen-mit.html
Die Beispiele im Wiki zu MVC sind auch nicht mehr aktuell. Schau Dir mal das Wiki und die blog_example an. Völlig andere Implementierungen.
So ein banales "Hello world"-Example fehlt mir irgendwie. Oder wie fange ich überhaupt an eine solche Extension zu zaubern, denn in den Videos ist schon alles fertig und super schön.
Naja...wird noch viel zu lesen auf mich zukommen.
Au weia...FLOW ist echt der Hammer. Das ersetzt Dir ja die ganzen Objektnamen mit Variablen und erzeugt dadurch eine unwahrscheinlich hohe Flexibilität.
Beispiel: Mein Object heißt: Tx_Sfextbase_Controller_SfextbaseController
Nachdem ich mir das Beispiel aus der blog_example angeschaut habe, habe ich mal ein bissl mit dem Array für die Controller rumgespielt und schwupp erscheint nach Eingabe von:
Tx_Extbase_Utility_Extension::configurePlugin(
$_EXTKEY,
'trallala',
array(
'irgendwas' => 'index',
)
);
folgende Fehlermeldung:
Fatal error: Class 'Tx_Sfextbase_Controller_irgendwasController' not found in C:\xampp_webserver\htdocs\t3lib\class.t3lib_div.php on line 4976
Hier heißt die Klasse auf einmal: Tx_Sfextbase_Controller_irgendwasController
Heißt: Meine Einstellungen oben im Array wirken sich auf ExtBase insofern aus, dass das Framework mit meinen Werten einen Objektnamen generiert und danach sucht. Das muss man sich mal vorstellen. Wahnsinn.
Genau desselbe Prinzip wird bei den Funktionen verwendet. Oben im Array habe ich ja index angegeben. Dieser Name wird automatisch in den Methodennamen "indexAction" umgewandelt. Es können oben im Array mehrere dieser Methoden angegeben werden unter der Berücksichtigung, dass der erste Eintrag = der Methode ist, die per default gestartet werden soll.
Mit diesem Prinzip ist eine völlig neue Art der Programmierung geschaffen.
Herzlichen Glückwunsch
Stefan
Hallo, vielen dank für die aufschlussreichen erklärungen. Durch diesen post habe ich sehr schnell verstanden worum es sich bei extbase, flow3 und fluid handelt.
Nun ist mir nur noch eines unklar. Ich habe gelesen, das flow3 dazu da ist um frontend plugins zu entwickeln. Was ist nun mit dem typo3 backend, kann ich das auch mit flow3 beinflussen d.h. formular und module bauen usw.?
froemken schrieb
Mit diesem Prinzip ist eine völlig neue Art der Programmierung geschaffen.
Nur so neben bei, kann es sein das du noch nie etwas mit Objekt-Orientierter-Programmierung, bzw. du bisher ausschließlich mit Typo3 zu tun hattest?
Dieses Prinzip existier bereits seit längerem, wenn du dir mal andere PHP-Frameworks wie Symfony der Zend-Framework ansiehst. Die beiden und auch noch viele anderen bauen alle auf dem MVC-Prinzip auf und nutzen zumeist auch die gleiche oder ähnliche weise des Funktionsaufrufs.
Ich habe noch nie mit einem PHP-Framework gearbeitet. Symfony kenn ich gar nicht. Von Zend habe ich bisher nur gehört. Überhaupt habe ich vor der Beitragserstellung noch gar nicht mit irgendeinem Framework gearbeitet. Ich kannte zwar solche Sachen wie $$variable-wert, aber ich habe solche Konstrukte noch nie gebraucht, geschweige denn in einer Programmierung gesehen.
OOP mache ich erst seit TYPO3 und so oft es geht versuche ich auch OOP in meinen Extensions anzuwenden.
Naja...bin halt Systemintegrator und nicht Anwendungsentwickler. Dafür dass ich mir den ganzen Kram selbst beigebracht habe...bin ich schon ganz glücklich, was ich bisher so geschafft habe.
Stefan
Hallo zusammen,
ich befasse mich seit ein paar Tagen mit Extbase und der zugehörigen Template-Engine Fluid. In der aktuellen t3n gibts ein Tutorial zum Schreiben einer eigenen Extension in dieser neuen Umgebung. Die Ordnerstruktur sowie alle Dateien habe ich wie beschrieben uebernommen. Am Ende des Artikels heißt es dann "importieren sie die Extension über den Ext-Manager", nur habe ich momentan ja nur die Dateien im ext-Ordner erstellt, und keine .t3x, welche ich importieren koennte. Der neu erstellte Ordner, in meinem Fall "Guestbook", wird im Ext-Manager auch nicht angezeigt?
Bin jetzt schon ne ganze Weile am tuefteln, komme aber leider nicht weiter.
Hoffe hier kann mir geholfen werden ueber Tips waere ich sehr dankbar.
viele Grueße,
.m4isy
Hallo,
die Extension guestbook existiert schon. Beim Ext-Manager "Install extensions wählen" und installieren.
Bei mir funktioniert leider das Beispiel nicht.
Viele Grüße,
mufufu
danke fuer den tip,
aber darum gehts mir eigentlich nicht. es geht darum, eine eigene extension auf basis von extbase/fluid zu schreiben. als basis dazu hab ich das gaestebuch-beispiel aus der aktuellen t3n genommen. ideal waere fuer mich ein tool, mit dem man t3x archive packen kann.
viele grueße
Warum nimmst du nicht die efempty Extension aus dem t3-repository als Basis für deine neue Ext.? Oder verstehe ich dich falsch?
MVC is uralt, nur nicht in der Webwelt 🙂
Hallo zusammen
Kling ja alles superspannend... aber... kann/soll man den nun damit auch Backend Module entwickeln? Falls ja, braucht man dazu immer noch am besten den Kickstarter?
Grüsse
Metaxos