2. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 2 / 34 SpeedPartner GmbH Inhalte Einfhrung/berblick Fluid ohne Extbase Extbase Konventionen (Naming, phpdoc, ...) Vom Pfad abweichen Stolperfallen Einstieg mit dem Extbase-Kickstarter Links / Hilfen
3. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 3 / 34 SpeedPartner GmbH ber mich Stefan Neufeind Aus Neuss Ttig fr SpeedPartner GmbH, ein Internet-Service-Provider (ISP) (Consulting, Entwicklung, Administration) Individuelle TYPO3-Entwicklungen Hosting, Housing, Managed Services Domains / Domain-Services xDSL, IP-Upstream, IPv6 Aktive Mitarbeit im Community-Umfeld (PHP/PEAR, TYPO3, Linux) Mitglied im TYPO3 Certification Team Freier Autor fr z.B. t3n, iX, Internet World, ...
4. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 4 / 34 SpeedPartner GmbH Einfhrung/berblick Ziele des Vortrags: Einstieg geben Grober berblick Aufbauend auf Standard-Beispiel blog_example Wichtigsten Konventionen erlutern Standard-Fehler vermeiden Berhrungsngste nehmen Spa an Arbeit mit Extbase/Fluid vermitteln Vorbereitet sein fr Umstieg auf FLOW3
5. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 5 / 34 SpeedPartner GmbH Einfhrung/berblick Hintergrund zur Entwicklung: Klassische TYPO3-Architektur weit verbreitet Gemeinsame Basis fr Extensions (tslib_pibase) Teilweise sehr unterschiedliche Anstze fr Aufbau von Extensions Templating in Extensions berwiegend Marker-basiert Zusammengesetzt aus Platzhaltern (Markern) und Blcken (Subparts) In 2006 Entscheidung TYPO3 neu zu schreiben Aufteilung in Framework (FLOW3) und das eigentliche CMS (TYPO3 v5) Moderne Architektur und Software-Entwicklungs-Paradigmen Nutzung aktueller Mglichkeiten (PHP 5.2+) Domain-driven design, MVC (Model-View-Controller)
6. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 6 / 34 SpeedPartner GmbH Einfhrung/berblick Zusammenhang und Zusammenarbeit TYPO3v4 und TYPO3v5: Okt. 2008: Transition Days in Berlin Verabschiedung des The Berlin Manifestio Beschluss TYPO3 v4 weiterzuentwickeln (auch nach TYPO3 v5-Release) bergang TYPO3 v4 zu TYPO3 v5 ermglichen/vereinfachen War fr TYPO3 v4 Grundlage zur Entscheidung fr Eine moderne, neue Basisklasse als Ersatz fr tslib_pibase: Extbase Neue, flexible und erweiterbare Template-Engine: Fluid
7. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 7 / 34 SpeedPartner GmbH Einfhrung/berblick Neuer Ansatz fr TYPO3 v4-Extensions: Extbase-Framework: Konzepte und Lsungen von FLOW3 fr TYPO3 v4.3+ verfgbar machen Struktur der Extensions, Konventionen, Schnittstellen (APIs) weitgehend gleich Leichten bergang zu FLOW3/TYPO3v5 ermglichen (Anpassungen erforderlich, jedoch Architektur und Schnittstellen hnlich) Fluid fr FLOW3 Basis ist Basis von Fluid fr TYPO3v4 Fluid-Team entwickelte in wenigen Tagen ein Backporter-Tool Ermglicht Fluid-Code von TYPO3v4 und FLOW3 synchron zu halten Beta von Extbase und Fluid im Herbst 2009 Aufnahme in TYPO3 Core mit Verffentlichung von TYPO3 4.3.0 (Nov. 2009)
8. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 8 / 34 SpeedPartner GmbH Fluid ohne Extbase Wechseln von Markern zu Fluid? Marker-Konzept: einfach und bekannt Jedoch fast zu minimalistisch Umfangreiche Templates erfordern teils sehr kreative Lsungen (Schleifen, ...) Unterschiedliche Lsungsanstze mit Strken/Schwchen Umsetzungen in manchen Fllen fehleranfllig Fluid: strukturiert, flexibel, erweiterbar bersichtlicher Aufbau Kontrollstrukturen: Verzweigungen / Schleifen Objektorientierung Erweiterbarkeit (ViewHelper, ...)
9. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 9 / 34 SpeedPartner GmbH Fluid ohne Extbase Einfaches Beispiel mit Markern: HTML-Basis / Ziel: Im Template:
13. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 13 / 34 SpeedPartner GmbH Extbase Konzept: Domain-driven design: Umfeld der Problemstellung Gemeinsame Sprache (Begrifflichkeiten, ...) Objekt-Modell mit Eigenschaften, Funktionalitten und Beziehungen Model-View-Controller (MVC): Model: kapselt Anwendungslogik und -daten sowie Zugriffs- und Speicherlogik Controller: stellt nach auen sichtbare, aufrufbare Funktionalitten bereit, koordiniert Funktionalitt welche im Model implementiert wird View: Ausgabelogik, Darstellung der Daten (bei Extbase in der Regel mit Fluid)
14. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 14 / 34 SpeedPartner GmbH Extbase Konventionen: Klassen: UpperCamelCase Methoden & Variablen: lowerCamelCase Bildung von Namen Fr Klassennamen: Tx_[ExtensionName]_[Ebene1]_[Ebene2]... z.B. Tx_BlogExample_Controller_BlogController, Tx_BlogExample_Domain_Model_Blog Verzeichnisse/Dateien: einzelne Bestandteile durch Verzeichnisse abgebildet z.B. Classes/Controller/BlogController.php oder Classes/Domain/Model/Blog.php Datenbank: lower-case mit Unterstrichen, z.B. tx_blogexample_domain_model_blog Struktur: Objekte sind in einem Repository gesammelt, welches die Verwaltung bernimmt Persistence-Manager bernimmt Speicherung / Rekonstruktion von Objekten Optional: Validatoren bernehmen die Prfung von Objekten und Werten Ausgabe aus Rahmen (Layout), Template und Blcke (Partials) zusammengesetzt
15. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 15 / 34 SpeedPartner GmbH Extbase berblick ber Standard-Beispiel blog_example: Besteht aus: Ansatz: Blogs enthalten Posts, welche mit Kommentaren/Tags versehen sein knnen Funktionalitten z.B. eines Blog-Post (siehe PostController): Listenansicht (Index), Einzelansicht, Erzeugen (+ Speicher