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.
Inhalt 5
Einführung 9
Kapitel 1: Installation 17
Den Server einrichten 17
Die Entwicklungsumgebung einrichten 20
Weitere hilfreiche Extensions 24
Kapitel 2: Grundlagen 27
Objektorientierte Programmierung mit PHP 28
Domain-Driven Design 42
Model-View-Controller in Extbase 53
Test-Driven Development 58
Zusammenfassung 67
Kapitel 3: Reise durch das Blog-Beispiel 69
Erste Orientierung 70
Die Stationen der Reise 72
Die Extension aufrufen 73
Und Action! 75
Blogs aus dem Repository abholen 77
Ein Ausflug zur Datenbank 78
Pfade auf der Data-Map 78
Zurück im Controller 81
Die Ausgabe durch Fluid rendern 82
Das Ergebnis an TYPO3 zurückgeben 85
Alternative Reiseroute: Einen neuen Post anlegen 85
Automatische Speicherung der Domäne 90
Hinweise für Umsteiger 91
Kapitel 4: Eine erste Extension anlegen 95
Die Beispiel-Extension 95
Ordnerstruktur und Konfigurationsdateien anlegen 96
Das Domänenmodell anlegen 98
Produkte haltbar machen 100
Den Ablauf steuern 103
Das Template anlegen 104
Das Plugin konfigurieren 105
Kapitel 5: Die Domäne modellieren 109
Die Anwendungsdomäne 110
Das Domänenmodell implementieren 114
Kapitel 6: Die Persistenzschicht einrichten 133
Die Datenbank vorbereiten 134
Eingabemasken des Backends konfigurieren 145
Individuelle Abfragen implementieren 164
Fremde Datenquellen nutzen 174
Klassenhierarchien abbilden 175
Kapitel 7: Den Ablauf mit Controllern steuern 181
Controller und Actions anlegen 182
Frontend-Plugins konfigurieren und einbinden 196
Das Verhalten der Extension konfigurieren 198
Kapitel 8: Die Ausgabe mit Fluid gestalten 199
Basiskonzepte 199
Verschiedene Ausgabeformate verwenden 207
Wiederkehrende Snippets in Partials auslagern 207
Die Darstellung mit Layouts vereinheitlichen 209
TypoScript zur Ausgabe nutzen: der cObject-ViewHelper 210
Zusätzliche Tag-Attribute mit additionalAttributes einfügen 213
Boolesche Bedingungen zur Steuerung derAusgabe verwenden 214
Einen eigenen ViewHelper entwickeln 216
PHP-basierte Views einsetzen 223
Template-Erstellung am Beispiel 225
Zusammenfassung 231
Kapitel 9: Mehrsprachigkeit, Validierung und Sicherheit 233
Eine Extension lokalisieren und mehrsprachig auslegen 233
Domänenobjekte validieren 243
Sichere Extensions programmieren 257
Zusammenfassung 261
Kapitel 10: Ausblick 263
Eine Extension mit dem Kickstarter anlegen 263
Backend-Module 267
Migration auf FLOW3 und TYPO3 v5 269
Anhang A: Coding Guidelines 271
Anhang B: Referenz für Extbase 275
Anhang C: Referenz für Fluid 291
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."
Erscheint lt. Verlag | 28.8.2010 |
---|---|
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Mathematik / Informatik ► Informatik ► Software Entwicklung | |
ISBN-10 | 3-86899-571-4 / 3868995714 |
ISBN-13 | 978-3-86899-571-8 / 9783868995718 |
Haben Sie eine Frage zum Produkt? |
Größe: 4,3 MB
Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopierschutz. Eine Weitergabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persönlichen Nutzung erwerben.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
Größe: 5,1 MB
Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopierschutz. Eine Weitergabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persönlichen Nutzung erwerben.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich