Click here to load reader
View
219
Download
0
Embed Size (px)
DESCRIPTION
Â
Extensionentwicklung ab TYPO3 4.3
Entwicklerdokumentation
Extensionentwicklung ab TYPO3 4.3
Eine Einfhrung in Extbase und Fluid
Martin HelmichMittwald CM Service
Copyright 2010 Mittwald CM ServiceVervielfltigung nur mit ausdrcklicher schriftlicher Genehmigung.
Mittwald CM Service GmbH und Co. KGKnigsberger Strae 632339 Espelkamp
URL: http://www.mittwald.deE-Mail: [email protected]
Seite 1 von 170
Extensionentwicklung ab TYPO3 4.3
Inhalt
Teil I: Einleitung ..................................................................................................11
I.1 FLOW3 und Extbase ..............................................................................................12
I.2 Zielgruppe und Voraussetzungen ...........................................................................13
Teil II: Design und Architektur ...........................................................................14
II.1 Grundlegende Konzepte .......................................................................................15
II.1.1 Objektorientierte Programmierung .....................................................................15II.1.1.1 berblick ....................................................................................................15II.1.1.2 Einfhrung ..................................................................................................16
II.1.1.2.a Objekte und Klassen ...........................................................................16II.1.1.2.b Datenkapselung ...................................................................................16II.1.1.2.c Beispiel: Objektorientierung in PHP ....................................................17
II.1.1.3 Vertiefung ...................................................................................................18II.1.1.3.a Sichtbarkeit von Attributen und Methoden .........................................18II.1.1.3.b Statische Methoden und Attribute ......................................................19II.1.1.3.c Vererbung ............................................................................................19II.1.1.3.d Abstrakte Klassen ...............................................................................20II.1.1.3.e Schnittstellen .......................................................................................20
II.1.2 Domain-Driven Design .......................................................................................22II.1.2.1 Grundlagen .................................................................................................22
II.1.2.1.a Domnen und Fachmodelle ..................................................................22II.1.2.1.b Kommunikation ...................................................................................22
Seite 2 von 170
Extensionentwicklung ab TYPO3 4.3
II.1.2.2 Schichtenarchitektur ...................................................................................24II.1.2.3 Das Fachmodell ...........................................................................................25
II.1.2.3.a Entitten und Wertobjekte ..................................................................25II.1.2.3.b Assoziationen ......................................................................................26II.1.2.3.c Dienste und Module .............................................................................27
II.1.2.4 Lebenszyklus von Objekten .........................................................................27II.1.2.4.a Aggregate ............................................................................................28II.1.2.4.b Repositories .........................................................................................30II.1.2.4.c Fabriken ...............................................................................................31
II.1.3 Model-View-Controller-Architektur ....................................................................31II.1.3.1 Grundlagen .................................................................................................31II.1.3.2 Datenmodell ...............................................................................................32II.1.3.3 Prsentation ................................................................................................32II.1.3.4 Steuerung ....................................................................................................33
II.2 Entwurf der Anwendung .......................................................................................34
II.2.1 Anforderungen ...................................................................................................34II.2.2 Die Anwendungsdomne ....................................................................................34II.2.3 Klassen und Objekte ..........................................................................................37
II.2.3.1 Datenmodell ...............................................................................................37II.2.3.2 Repositories ................................................................................................38II.2.3.3 Controller ....................................................................................................38
II.2.4 Der Datenbankentwurf .......................................................................................39
Teil III: Erste Schritte in Extbase ........................................................................41
III.1 Grundlagen von Extbase .....................................................................................42
III.1.1 Was ist Extbase? ..............................................................................................42III.1.1.1 Grundlagen ................................................................................................42III.1.1.2 Installation von Extbase und Fluid ...........................................................43
III.1.2 Convention over Configuration .........................................................................43III.1.3 Aufbau einer Extbase-Erweiterung ....................................................................45
III.1.3.1 Klassen ......................................................................................................46III.1.3.2 Konfiguration ............................................................................................47III.1.3.3 Ressourcen .................................................................................................48
III.1.4 Wissenswertes ...................................................................................................49
Seite 3 von 170
Extensionentwicklung ab TYPO3 4.3
III.1.4.1 Data-Mapping ...........................................................................................49III.1.4.2 Die Reflection-API ....................................................................................50
III.2 Einfhrung in Fluid .............................................................................................52
III.2.1 Ein Blick zurck ...............................................................................................52III.2.2 Objektorientierte Vorlagen ................................................................................53III.2.3 ViewHelper .......................................................................................................54
III.3 Anlegen der Extension ........................................................................................57
III.3.1 Installation des Extbase-Kickstarters ................................................................57III.3.2 Kickstarting der Erweiterung ............................................................................58
III.3.2.1 Einstieg .....................................................................................................58III.3.2.2 Erstellen der Domnenobjekte ...................................................................59III.3.2.3 Verknpfen der Objekte .............................................................................61III.3.2.4 Manuelle Anpassungen ..............................................................................62III.3.2.5 Dynamisches und statisches Scaffolding .....................................................63
III.3.3 Installation der Erweiterung .............................................................................64
III.4 Erste Schritte ......................................................................................................67
III.4.1 Implementierung des Domnenmodells .............................................................67III.4.1.1 Datenmodell ..............................................................................................67
III.4.1.1.a Projekte: Die Klasse Project ...........................................................68III.4.1.1.b Benutzerrollen: Die Klasse Role ......................................................74III.4.1.1.c Benutzer: Die Klasse FrontendUser .................................................74III.4.1.1.d Zuweisungen: Die Klasse Assignment ..............................................75III.4.1.1.e Zeitpaare: Die Klasse Timeset .........................................................76III.4.1.1.f Wie alle Klassen zusammenarbeiten ...................................................77
III.4.1.2 Repositories ...............................................................................................78III.4.2 Der erste Controller ....................................................................................