Inhaltsverzeichnis. Vorwort 13

Ähnliche Dokumente
Patrick Lobacher. TYPO3 Extbase. Moderne Extension-Entwicklung für TYPO3 CMS mit Extbase & Fluid. 1. Auflage. Open Source Press

Inhalt. Teil I Klassische Extensionprogrammierung

Extensions mit TYPO3 TYPO3

Upgrade auf TYPO3 6.2

Was ist neu in TYPO3 6.0

pt_extlist Daniel Lienert & Michael Knoll pt_extlist

TYPO3. Extensions für. Know-how ist blau. So entwickeln Sie maßgeschneiderte TYPO3-Erweiterungen

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Inhaltsverzeichnis. 1.7 Systemvoraussetzungen Benutzer (Client) Installation Welches Paket ist das Richtige?...

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

Zusammenfassung der letzten Vorlesungen. - Ergänzungen zu Menüs /Sprachumschaltung. - indexed search

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Inhaltsverzeichnis TEIL Einleitung 17. Kapitel 1 Die Basis: die inhaltliche und visuelle Konzeption 21

Allgemeine Einführung Elisabeth Beyrle Stefan Paffhausen

Werner Altmann Rene Fritz Daniel Hinderink TYP03. Enterprise Content Management

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

EXT: Patenschaften. EXT: Patenschaften - dd_sponsorship EXT: Patenschaften

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Silverstripe CMS und das Sapphire Framework

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Die Alternative zum Web-Form Modell

Volker Krell. Patrick Lobacher. 100 Tipps. für TYP03 CMS. Typische Fehler erkennen und vermeiden. 2. Auflage. Source Press. Open

TYPO3 Gestern, Heute, Morgen

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

TYPO3 und TypoScript

Extbase/Fluid. Kennenlernen und ausprobieren. (Eine Einführung)

Ruby on Rails. Thomas Baustert Ralf Wirdemann Alternative zur Web-Entwicklung mit Java?

Composer für Contao Entwickler

TYPO3 CMS What s New Übersicht der neuen Funktionen, Änderungen und Verbesserungen

TYPO Die Änderungen im Überblick. Peter Kraume. 03. November 2009 Munich TYPO3 Usergroup. Inspiring people to share

Neue Wege mit Contao 4

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) Jakob Külzer jakob.kuelzer@gmail.

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Manual WordPress - ContentManagementSystem

Professionell bloggen mit WordPress

TYPO3 KNOW-HOW INHALT. von Alexander Busch, MCITP, MCSA 2003, CCA, VCS. Spam-Schutz für Typo Robots.txt in Typo Captcha Extension...

EXT: kool_groupsubscribe

Handbuch TweetMeetsMage

Eclipse und EclipseLink

Grundlagen der Web-Entwicklung

DAS EINSTEIGERSEMINAR

Extbase/Fluid. Tipps, Tricks und Stolperfallen. (eine Einführung)

Web2Lead. Konfiguration

TYPO3 4.0 Das Handbuch für Entwickler

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Skalierbare Webanwendungen mit Python und Google App Engine

Upgrade auf TYPO3 6.2

Handbuch zur Integration der Verwaltungssuchmaschine NRW (VSM) in TYPO3 mit der Extension dnrw_vsm

Bedienungsanleitung. ClipVilla Video Producer BEDIENUNGSANLEITUNG - CLIPVILLA VIDEO PRODUCER

Praktikum Spring MVC Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Inhalt. Vorwort 13. Teil I CSS kennenlernen: Einstieg in XHTML und CSS

Salesforce.com Entwicklerhandbuch

Inhaltsverzeichnis. 1 Einleitung Teil I TYPOlight für Anwender Installation... 25

Sie finden in dieser Leseprobe: ca. 10 Seiten des Joomla Teils des E-Books, das gesamte Inhaltsverzeichnis des E-Books.

Joomla Schulung. Open Source CM-System. Projekt-Nr Thomas Haussener, MA. 20. Juni 2007

Magento Theming Ein Einstieg Rainer Wollthan

TYPO3 und TypoScript -- Kochbuch

TYPO3 Das Handbuch für Entwickler

Besser PHP programmieren

Extension- Entwicklung in TYPO3 am Beispiel einer Seminarverwaltung

Ralf Eggert. Zend Framework 2. Das Praxisbuch

Wege zum neuen Layout des Wordpress Inspirata-Webportals

Groovy on Grails. Informatik-Seminar WS06/07. Alexander Treptow. Groovy on Grails Alexander Treptow (minf2622) 1

Legacy Web-Apps mit AngularJS pimpen

Beschreibung des Angebotes

Django - ein Python Web-Framework

Referenzen Frontend Typo3

Benutzerhandbuch pdfprint für Magento2

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

TYPO3 Schulung. Für Redakteure am IDS Mannheim

TwinCAT HMI Application

Software Engineering II

DAS EINSTEIGERSEMINAR. Drupal 6. von Thorsten P Luhm. 1. Auflage. Drupal 6 Luhm schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Georgienseite TYPO3 LTS7 Projekt Georgienseite TYPO3 LTS 7 responsiv Stand: Juni 2016

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

Raumbuchungssystem Handbuch

EXT: kool_leute. Extension Key: kool_leute Copyright , Renzo Lauper,

Typo3. Thomas Lüthi. Beitrag zur "CMS-Battle" vom 7. Juni 2010 Campus Bern.

Typo 3 installieren. Schritt 1: Download von Typo3

Enterprise Java Beans Einführung

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

TYPO3 und TypoScript

Web 2. Gang. Python User Group Köln Christopher Arndt

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Entwicklung von Web-Applikationen mit Lift und Scala

TYPO3 und TypoScript

Upgrade auf Microsoft Dynamics CRM 2013

Der Einstieg in die neue Extension-Entwicklung. Zukunftssichere TYPO3- Extensions. Extbase. mit. O Reilly. Jochen Rau & Sebastian Kurfürst

Inhaltsverzeichnis. 1 Einleitung Grundlegendes zum Universum von TYPO Installation... 29

Sigrid Born Jari-Hermann Ernst. Content Management mit TYPO3 CMS. Inklusive CD-ROM

Web-Anwendungsentwicklung mit dem Delivery Server

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen

Dynamische Websites mit XML und PHP4

Lehrplan: Architektur und Design. paluno

Die TYPO3-Extension Publikationen

Inhaltsverzeichnis. Teil I jquery Grundlagen 23. Einleitung 19. Kapitel 1 Der Start mit jquery 25. Über die Autorin 7

Projekt Weblog :: Integration

DAS EINSTEIGERSEMINAR

Software Engineering II

Transkript:

Vorwort 13 1 Der moderne Weg der Extension-Programmierung 17 1.1 Ein neues TYPO3 entsteht................................ 17 1.2 Das Berlin-Manifesto.................................... 19 1.3 Die Geburtsstunde von TYPO3 Flow (FLOW3)................. 20 1.4 Phoenix aus der Asche................................... 21 1.5 Das TYPO3-Dilemma.................................... 23 1.6 Das neue TYPO3-Universum.............................. 24 1.7 Die Geschichte von Extbase & Fluid......................... 25 1.7.1 Backports: Extbase & Fluid.......................... 25 1.7.2 Höheres Programmierniveau........................ 26 2 Grundlagen der objektorientierten Programmierung 27 2.1 Klassen und Objekte..................................... 28 2.2 Methoden............................................ 29 2.2.1 Der Pfeil-Operator................................ 31 2.2.2 Der Konstruktor.................................. 31 2.2.3 Zugriff mittels $this............................... 32 2.2.4 Methoden mit Inhalt füllen......................... 32 2.3 Vererbung von Klassen................................... 33 2.3.1 Zugriff mittels parent............................. 34 2.3.2 Überprüfung der Klassenzugehörigkeit................ 35 3

2.4 Abstrakte Klasse: Kontrollierte Vererbung.................... 36 2.5 Interfaces............................................. 37 2.6 Sichtbarkeit: public und protected.......................... 38 2.6.1 Getter und Setter................................. 39 2.7 Type Hints............................................ 39 2.8 Statische Zugriffe...................................... 40 2.9 Namespaces........................................... 41 2.10 Wichtige Entwurfs- und Architekturmuster.................. 42 2.10.1 Singleton....................................... 42 2.10.2 Prototyp........................................ 44 2.10.3 Dependency Injection............................. 44 2.11 Annotations.......................................... 46 3 Domain-Driven Design 47 3.1 Infrastructure Ignorance................................. 48 3.2 Das Domain Model..................................... 49 3.2.1 Ubiquitous Language.............................. 50 3.2.2 Bausteine für das DDD............................. 52 3.3 DDD strukturieren...................................... 57 3.3.1 Bounded Context (BC)............................. 57 3.3.2 Context Map.................................... 58 3.3.3 Core Domain.................................... 58 3.3.4 Shared Kernel.................................... 59 4 Extbase im Überblick 61 4.1 Installation von Extbase & Fluid........................... 61 4.1.1 PHP Doc Comments erhalten........................ 62 4.2 Installation der Extension efempty......................... 63 4.3 Rundgang durch die Extension............................ 65 4.3.1 Die Dateien ext_emconf.php und ext_icon.gif........... 65 4

4.3.2 ext_tables.php................................... 66 4.3.3 ext_localconf.php................................ 69 4.3.4 Controller: Lobacher\Efempty\Controller\StartController........... 73 4.3.5 Domain: Lobacher\Efempty\Domain\Model\Start........ 76 4.3.6 Die Ausgabe über den View......................... 77 4.3.7 Aufruf der Show-Action........................... 79 5 Erstellung des Domain Model (Modellierung) 81 5.1 Das Domain Model für das Buch........................... 81 5.2 Grundidee............................................ 82 5.2.1 Das Glossar..................................... 82 5.2.2 Modell......................................... 83 5.3 Modellierung in Extbase der Extension Builder.............. 85 5.3.1 Extension-Eigenschaften........................... 86 5.3.2 Domain Model................................... 91 5.3.3 Eigenschaften des Domain Model.................... 92 5.3.4 Relationen des Domain Model....................... 99 5.3.5 Relation zwischen Blog und Post..................... 99 5.3.6 Relationen zwischen Post und Comments............. 100 5.3.7 Relationen von Post zu Author und Tag.............. 101 5.4 Installation der Extension............................... 101 5.5 Analyse der Dateien des Extension Builder.................. 102 5.6 Weitere Funktionen des Extension Builder................... 108 5.6.1 Backup erstellen................................. 108 5.6.2 Model modifizieren.............................. 109 5.6.3 Class Builder................................... 111 6 Vorbereitung 113 6.1 Frontend Frameworks.................................. 113 6.2 Statisches TypoScript laden.............................. 115 5

6.3 CSS-Datei laden....................................... 116 6.4 IDE-Einstellungen..................................... 116 6.4.1 Core-Dateien in den Include-Pfad aufnehmen......... 117 6.4.2 Schema-Dateien für Fluid einbinden................. 118 6.4.3 Tipp zur Auflösung von Klassen..................... 120 6.4.4 TYPO3 Extension phpstorm........................ 121 7 Der CRUD-Prozess 123 7.1 Erstellen eines Objekts (Create)........................... 124 7.1.1 listaction anlegen............................... 124 7.1.2 Template für listaction anlegen..................... 125 7.1.3 Exkurs: Rendering des Templates.................... 126 7.1.4 Statische Blogs anlegen........................... 127 7.1.5 Persistieren der Blogs............................. 128 7.1.6 Exkurs: Persistierung............................. 129 7.1.7 Der PersistenceManager: manuelle Persistierung....... 131 7.1.8 Erzeugung in einer eigenen Action.................. 133 7.1.9 Formular zum Anlegen eines Objekts................. 136 7.2 Anzeigen eines Objekts (Read)............................ 147 7.3 Aktualisierung eines Objekts (Update)...................... 150 7.4 Löschen eines Objekts (Delete)............................ 152 8 Das Fluid-Templating: Templates, Layouts & Partials 155 8.1 Layout erstellen und referenzieren........................ 157 8.2 Partials.............................................. 159 8.2.1 Einfache Partials................................ 159 8.2.2 Komplexe Partials................................ 160 9 Query Manager und Repositories 163 9.1 Aufbau einer Repository-Klasse........................... 163 9.2 Schreibende Repository-Funktionen....................... 164 9.3 Lesende Repository-Funktionen.......................... 164 6

9.4 Default-Aufbau einer Query............................. 166 9.4.1 Exkurs: Debugging............................... 168 9.5 Anpassen des Queries.................................. 170 9.5.1 Ergebnis-Set bestimmen.......................... 170 9.5.2 Ergebnis-Set einschränken........................ 171 9.5.3 Logische Verknüpfungen.......................... 171 9.5.4 Natives SQL.................................... 172 9.5.5 Query-Settings.................................. 172 9.6 Beispiel: Suchwort im Titel............................... 174 9.7 Dynamische Suche auf dem Repository.................... 175 9.8 Exkurs: Request-Objekt................................. 176 10 Konfiguration via TypoScript und FlexForms 179 10.1 TypoScript........................................... 180 10.1.1 Scope im Setup................................. 180 10.1.2 Aufbau........................................ 180 10.1.3 Optionen: view.................................. 182 10.1.4 Optionen: persistence............................ 184 10.1.5 Optionen: objects................................ 187 10.1.6 Optionen: features............................... 188 10.1.7 Optionen: mvc.................................. 188 10.1.8 Optionen: legacy................................ 189 10.1.9 Optionen: settings............................... 189 10.1.10 Optionen: _LOCAL_LANG......................... 189 10.1.11 Optionen: _CSS_DEFAULT_STYLE................... 190 10.2 FlexForms........................................... 190 10.2.1 FlexForm-Konfiguration........................... 191 10.2.2 Switchable Controller Actions (SCA)................. 193 10.3 TypoScript für die weitere Arbeit mit dem Buch setzen........ 194 10.4 TypoScript für Backend-Module.......................... 197 7

11 Validierung und Error Handling 199 11.1 Error Handling....................................... 199 11.2 Die Validierung in der Übersicht.......................... 202 11.3 Property Validation.................................... 202 11.3.1 Eingebaute Validatoren........................... 203 11.3.2 Mehrere Validatoren............................. 204 11.3.3 Eigene Validatoren............................... 205 11.4 Object Validation..................................... 207 11.5 Action Validation..................................... 209 11.6 Fehleranzeige beim Formularfeld......................... 212 11.6.1 Möglichkeit 1: Bordmittel......................... 212 11.6.2 Möglichkeit 2: ViewHelper......................... 214 12 Relationen 217 12.1 Relation im Domain Model.............................. 217 12.2 Das Table Configuration Array (TCA)....................... 219 12.3 Der CRUD-Prozess der Posts............................. 224 12.3.1 Vorbereitungen................................. 224 12.3.2 Posts anlegen (Create)............................ 225 12.3.3 Posts ansehen (Read)............................. 228 12.3.4 Posts editieren (Update)........................... 229 12.3.5 Posts löschen (Delete)............................ 230 12.4 Die m:n-beziehung am Beispiel der Tags................... 232 12.4.1 Anlegen der Tags im Backend...................... 232 12.4.2 Repository für die Tags........................... 233 12.4.3 Anpassen des Post-Controllers..................... 233 12.4.4 Anpassen der Templates und Partials................. 234 12.4.5 Anzeige der Tags in der Liste....................... 236 12.5 Die 1:1-Relation am Beispiel des Autors................... 238 12.5.1 Anlegen der Frontend User und Gruppen............. 238 8

12.5.2 Koppeln des Domänen-Objekts Author mit der fe_users-tabelle................................. 239 12.5.3 Festlegen des Autors beim Erstellen und Editieren eines Posts......................................... 240 12.5.4 Eingeloggten User als Autor verwenden.............. 242 12.6 Comments & AJAX.................................... 244 12.6.1 Registrierung der AJAX-Action..................... 245 12.6.2 Anzeige der Kommentare.......................... 245 12.6.3 JavaScript-Handler.............................. 246 12.6.4 Ajax-Action im Post-Controller..................... 248 12.6.5 AJAX Page-Type im TypoScript festlegen.............. 249 13 Eigene ViewHelper erstellen 253 13.1 Namespace-Deklaration................................ 254 13.2 Text-ViewHelper...................................... 255 13.2.1 Parameter via Attribut............................ 256 13.2.2 Parameter via Inhalt.............................. 257 13.3 Tag-ViewHelper....................................... 258 13.4 If-ViewHelper........................................ 260 13.5 Widget-ViewHelper.................................... 261 13.5.1 Verwendung des Widget-ViewHelpers................ 262 13.5.2 Erstellung des Widget-ViewHelpers.................. 263 13.5.3 Der Controller.................................. 264 13.5.4 Der View....................................... 265 13.5.5 Das A-Z Widget................................. 266 14 Mehrsprachigkeit 269 14.1 Sprachen konfigurieren................................ 269 14.2 Sprachlabels......................................... 270 14.3 Sprachlabels mit Platzhaltern............................ 272 14.4 Sprachlabels mit TypoScript überschreiben................. 273 9

14.5 Sprachlabels in PHP................................... 274 14.6 Mehrsprachigkeit bei Domänenobjekten................... 274 15 Backend-Module 277 15.1 Registrierung........................................ 277 15.2 Sprachdatei für die Labels.............................. 279 15.3 TypoScript........................................... 280 15.4 Comment-Repository.................................. 280 15.5 Comment-Controller.................................. 281 15.6 List View............................................ 282 15.6.1 Aufbau........................................ 283 15.6.2 Inhalt des List-Templates.......................... 284 15.6.3 CSH-Buttons................................... 286 15.6.4 Action-Menü................................... 287 15.6.5 Shortcut-Button................................ 287 15.6.6 Icon-Button.................................... 288 16 Der Property Mapper 289 16.1 Beispiele............................................ 290 16.2 Konfigurieren des Property Mapper....................... 293 16.3 Konfiguration des Property Mapping im MVC Stack.......... 295 16.4 Sicherheitserwägungen................................ 296 16.5 API-Referenz......................................... 297 16.5.1 Automatische Auflösung des TypeConverters.......... 297 17 Best Practices 299 17.1 Flash Messages....................................... 299 17.2 Plugin per TypoScript laden............................. 301 17.3 RSS-Feed........................................... 302 17.4 UriBuilder........................................... 305 17.5 Upload von Dateien................................... 306 10

17.5.1 Hinzufügen eines Upload-Feldes.................... 306 17.5.2 Anpassungen im Blog-Controller.................... 307 17.5.3 Anpassungen im Blog Model....................... 308 17.5.4 TCA anpassen................................... 309 17.6 StdWrap in den Settings................................ 309 17.7 Signal Slot Dispatcher................................. 310 17.7.1 Eingebaute Signale.............................. 311 17.7.2 Beispiel für die Nutzung eingebauter Signale.......... 313 17.7.3 Eigene Signale erstellen........................... 314 17.8 File Abstraction Layer (FAL).............................. 316 17.9 Category API......................................... 319 17.10 Extbase Models....................................... 321 17.11 Scheduler Tasks....................................... 322 17.12 JSON View........................................... 323 I Anhang 327 A Referenz 329 A.1 ext_emconf.php....................................... 329 A.2 Flexform Feld-Typen................................... 331 A.2.1 Textfeld....................................... 331 A.2.2 Datumsfeld.................................... 332 A.2.3 Checkbox...................................... 332 A.2.4 Textarea....................................... 332 A.2.5 Textarea mit RTE................................ 332 A.2.6 Radio-Buttons.................................. 332 A.2.7 Selectbox...................................... 333 A.2.8 Selectbox (Mehrfachauswahl)...................... 333 A.2.9 Page-Browser................................... 334 Index 335 11