E-Book, Deutsch, 336 Seiten
Rau / Kurfürst Zukunftssichere TYPO3-Extensions mit Extbase und Fluid
1. Auflage 2010
ISBN: 978-3-89721-966-3
Verlag: O'Reilly Verlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
E-Book, Deutsch, 336 Seiten
ISBN: 978-3-89721-966-3
Verlag: O'Reilly Verlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
TYPO3 ist ein mächtiges Content Management System, das seine Beliebtheit nicht zuletzt seiner Erweiterbarkeit durch Extensions verdankt. Seit TYPO3 v4.3 bietet das CMS ein eigenes Framework und eine Template-Engine, mit der die Extension-Entwicklung noch geschmeidiger wird - und das bei hoher Qualität des Codes. Mit Extbase und Fluid stehen zwei Tools zur Verfügung, die Sie darin unterstützen, saubere, modular gekapselte und gut wartbare Extensions zu schreiben.
Moderne Programmier-Paradigmen
Durch die moderne Extension-Architektur setzt die Nutzung von Extbase und Fluid anderes Fachwissen als bisher voraus. Dieses Buch macht Sie mit den Programmier-Paradigmen vertraut, die Sie brauchen, um effektiv mit Extbase und Fluid zu arbeiten. Die Autoren stellen Ihnen Konzepte wie objektorientierte Programmierung, Domain-Driven Design und MVC-Architektur vor und zeigen Ihnen, wie Sie sie für die Extension-Entwicklung mit Extbase und Fluid nutzen.
Extbase und Fluid in der Praxis
Im Anschluss daran durchstreifen Sie die verschiedenen Schichten von Extbase und Fluid und erfahren, wie Sie Ihre erste Extension mit Extbase entwickeln. Dabei lernen Sie auch, wie Sie ein Domänenmodell entwickeln und implementieren, die Persistenzschicht einrichten, den Ablauf mit Controllern steuern und die Ausgabe mit Fluid gestalten.
Zukunftssicherheit
Extensions, die auf Extbase und Fluid basieren, können mit überschaubarem Aufwand zu TYPO3 v5 bzw. FLOW3 portiert werden.
Wissen aus erster Hand
Jochen Rau ist selbstständiger Software-Entwickler und seit 2009 verantwortlich für das Extbase-Projekt. Sebastian Kurfürst war als Hauptentwickler maßgeblich an der Entwicklung von Fluid beteiligt. Beide gehören zum TYPO3-Kernentwicklerteam.
Autoren/Hrsg.
Weitere Infos & Material
1;Inhalt;5
2;Einführung;9
3;Kapitel 1: Installation;17
3.1;Den Server einrichten;17
3.2;Die Entwicklungsumgebung einrichten;20
3.3;Weitere hilfreiche Extensions;24
4;Kapitel 2: Grundlagen;27
4.1;Objektorientierte Programmierung mit PHP;28
4.2;Domain-Driven Design;42
4.3;Model-View-Controller in Extbase;53
4.4;Test-Driven Development;58
4.5;Zusammenfassung;67
5;Kapitel 3: Reise durch das Blog-Beispiel;69
5.1;Erste Orientierung;70
5.2;Die Stationen der Reise;72
5.3;Die Extension aufrufen;73
5.4;Und Action!;75
5.5;Blogs aus dem Repository abholen;77
5.6;Ein Ausflug zur Datenbank;78
5.7;Pfade auf der Data-Map;78
5.8;Zurück im Controller;81
5.9;Die Ausgabe durch Fluid rendern;82
5.10;Das Ergebnis an TYPO3 zurückgeben;85
5.11;Alternative Reiseroute: Einen neuen Post anlegen;85
5.12;Automatische Speicherung der Domäne;90
5.13;Hinweise für Umsteiger;91
6;Kapitel 4: Eine erste Extension anlegen;95
6.1;Die Beispiel-Extension;95
6.2;Ordnerstruktur und Konfigurationsdateien anlegen;96
6.3;Das Domänenmodell anlegen;98
6.4;Produkte haltbar machen;100
6.5;Den Ablauf steuern;103
6.6;Das Template anlegen;104
6.7;Das Plugin konfigurieren;105
7;Kapitel 5: Die Domäne modellieren;109
7.1;Die Anwendungsdomäne;110
7.2;Das Domänenmodell implementieren;114
8;Kapitel 6: Die Persistenzschicht einrichten;133
8.1;Die Datenbank vorbereiten;134
8.2;Eingabemasken des Backends konfigurieren;145
8.3;Individuelle Abfragen implementieren;164
8.4;Fremde Datenquellen nutzen;174
8.5;Klassenhierarchien abbilden;175
9;Kapitel 7: Den Ablauf mit Controllern steuern;181
9.1;Controller und Actions anlegen;182
9.2;Frontend-Plugins konfigurieren und einbinden;196
9.3;Das Verhalten der Extension konfigurieren;198
10;Kapitel 8: Die Ausgabe mit Fluid gestalten;199
10.1;Basiskonzepte;199
10.2;Verschiedene Ausgabeformate verwenden;207
10.3;Wiederkehrende Snippets in Partials auslagern;207
10.4;Die Darstellung mit Layouts vereinheitlichen;209
10.5;TypoScript zur Ausgabe nutzen: der cObject-ViewHelper;210
10.6;Zusätzliche Tag-Attribute mit additionalAttributes einfügen;213
10.7;Boolesche Bedingungen zur Steuerung derAusgabe verwenden;214
10.8;Einen eigenen ViewHelper entwickeln;216
10.9;PHP-basierte Views einsetzen;223
10.10;Template-Erstellung am Beispiel;225
10.11;Zusammenfassung;231
11;Kapitel 9: Mehrsprachigkeit, Validierung und Sicherheit;233
11.1;Eine Extension lokalisieren und mehrsprachig auslegen;233
11.2;Domänenobjekte validieren;243
11.3;Sichere Extensions programmieren;257
11.4;Zusammenfassung;261
12;Kapitel 10: Ausblick;263
12.1;Eine Extension mit dem Kickstarter anlegen;263
12.2;Backend-Module;267
12.3;Migration auf FLOW3 und TYPO3 v5;269
13;Anhang A: Coding Guidelines;271
14;Anhang B: Referenz für Extbase;275
15;Anhang C: Referenz für Fluid;291
16;Index;329
"Kapitel 9 KAPITEL 9 Mehrsprachigkeit, Validierung und Sicherheit (S. 217-218)
In den vorangehenden Kapiteln sind wir ausführlich auf alle Schichten des MVC-Patterns eingegangen. Dabei haben wir jede Schicht weitgehend separat betrachtet. Dies ändert sich in diesem Kapitel: Hier geht es um Aufgaben bei der Extension-Programmierung, bei denen das Zusammenspiel der verschiedenen Schichten wichtig ist. Wir zeigen zuerst, wie sich auf Extbase basierende Extensions so programmieren lassen, dass sie Ausgaben in mehreren Sprachen erzeugen können. Dabei wird neben der Lokalisierung von statischen Texten auch die Übersetzung von Domänenobjekten berücksichtigt. Im zweiten Teil des Kapitels wird erklärt, wie sich Konsistenzbedingungen des Domänenmodells umsetzen und überprüfen lassen. Abgeschlossen wird das Kapitel mit einigen Aspekten, die die Sicherheit der Extension erhöhen.
Eine Extension lokalisieren und mehrsprachig auslegen
Insbesondere im Unternehmenszusammenhang gibt es häufig den Bedarf, eine Website in einer oder mehreren weiteren Sprachen anzubieten. Dabei fällt nicht nur eine Übersetzung der Website-Inhalte an, sondern auch die Erweiterungen, die genutzt werden, müssen in mehreren Sprachen vorliegen. Daher sollten Sie schon bei der Programmierung einer Extension an eine mögliche spätere Lokalisierung denken und dementsprechend einige Weichen stellen.
Die Konfigurationsmöglichkeiten für die Lokalisierung innerhalb von TYPO3 sind sehr vielfältig. Eine umfassende Beschreibung aller Konzepte und Optionen finden Sie im Frontend Localization Guide (http://typo3.org/documentation/document-library/core-documentation/ doc_l10nguide/current/). Wir setzen für die folgenden Abschnitte eine korrekte Konfiguration der Lokalisierung voraus. Diese wird üblicherweise im TypoScript-Root-Template vorgenommen und sieht etwa wie folgt aus:
config { linkVars = L uniqueLinkVars = 1 sys_language_uid = 0 language = default locale_all = en_GB htmlTag_langKey = en }
[globalVar = GP:L = 1] config { sys_language_uid = 1 language = de locale_all = de_DE.utf8 htmlTag_langKey = de } [global]
Die Auswahl der Frontend-Sprache erfolgt über einen Parameter in der URL (linkVars = L). Wichtig ist die Festlegung der UID der Sprache (sys_language_uid = 0) und der Language- Key der Sprache (language = default). Wenn nun die URL der Webseite einen Parameter L=1 enthält, erfolgt die Ausgabe auf Deutsch, falls der Parameter nicht gesetzt ist, so erfolgt die Ausgabe der Webseite in der Standardsprache (in unserem Beispiel auf Englisch). Im Folgenden beschäftigen wir uns zunächst mit der Übersetzung statischer Texte wie etwa Linkbeschriftungen, die in den Templates vorkommen. Im Anschluss daran geht es um die Übersetzung der Inhalte der Extension, also der Domänenobjekte. Abschließend wird erklärt, wie Datumsformate an die im jeweiligen Land etablierten Datumskonventionen angepasst werden können."