Home >Internet >Extbase/Fluid: Kennenlernen und ausprobieren

Extbase/Fluid: Kennenlernen und ausprobieren

Date post:05-Dec-2014
Category:
View:426 times
Download:2 times
Share this document with a friend
Description:
Date: 2011-01-08 Location: Düsseldorf, Germany Event: TYPO3 Usergroup NRW
Transcript:
  • 1. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 1 / 34 SpeedPartner GmbH Extbase/Fluid Kennenlernen und ausprobieren (Eine Einfhrung)
  • 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:
    • Name1
    • Name2
    • Name3
    • ###NAME###
    • ###NAME###
  • 10. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 10 / 34 SpeedPartner GmbH Fluid ohne Extbase Einfaches Beispiel mit Markern: Extension-Code (Auszug): $templateCode = $this->cObj->fileResource('EXT:' . $this->extKey . '/res/marker.htm'); $template = array(); $template['namelist'] = $this->cObj->getSubpart($templateCode,'###NAMELIST###'); $template['row_odd'] = $this->cObj->getSubpart($template['namelist'],'###ROW_ODD###'); $template['row_even'] = $this->cObj->getSubpart($template['namelist'],'###ROW_EVEN###'); $contentList = ''; $odd = true; foreach($names as $name) { if($odd) { $contentList .= $this->cObj->substituteMarker($template['row_odd'], '###NAME###', $name); } else { $contentList .= $this->cObj->substituteMarker($template['row_even'],'###NAME###',$name); } $odd = ($odd == false); } $content = $template['namelist']; $content = $this->cObj->substituteSubpart($content, '###ROW_ODD###', ''); $content = $this->cObj->substituteSubpart($content, '###ROW_EVEN###', $contentList);
  • 11. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 11 / 34 SpeedPartner GmbH Fluid ohne Extbase Einfaches Beispiel mit Fluid: HTML-Basis / Ziel: Im Template:
    • Name1
    • Name2
    • Name3
    • {name}
  • 12. Extbase/Fluid-Einfhrung TYPO3 Usergroup NRW, 08.01.2011 Seite: 12 / 34 SpeedPartner GmbH Fluid ohne Extbase Einfaches Beispiel mit Fluid: Extension-Code (Auszug): $view = t3lib_div::makeInstance('Tx_Fluid_View_TemplateView'); $controllerContext = t3lib_div::makeInstance('Tx_Extbase_MVC_Controller_ControllerContext'); $controllerContext->setRequest(t3lib_div::makeInstance('Tx_Extbase_MVC_Request')); $view->setControllerContext($controllerContext); $template = t3lib_extMgm::extPath($this->extKey) . 'res/marker_fluid.htm'; $view->setTemplatePathAndFilename($template); $view->assign('names', $names); $content = $view->render();
  • 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

Click here to load reader

Reader Image
Embed Size (px)
Recommended