Leanpub Header

Skip to main content

Retired

This book is no longer available for sale.

TYPO3 Extbase (Deutsch)

Moderne Extensionentwicklung für TYPO3 CMS mit Extbase und Fluid

Brandneu zu TYPO3 7.6 LTS! Das Buch zur Extensionsprogrammierung mit Hilfe von Extbase & Fluid unter TYPO3 CMS - für Anfänger und Fortgeschrittene. Vollständig überarbeitete Neuauflage auf über 500 Seiten!

PDF
EPUB
WEB
355
Readers
400
Pages
70,296Words
About

About

About the Book

Kaum eine TYPO3-Installation kommt ohne eigene Erweiterungen (Extensions) aus, die seit der Version TYPO3 CMS 4.3 mit Hilfe des DDD- und MVC-Frameworks "TYPO3 Extbase" & der Templating Engine "Fluid" programmiert werden. 

Dieses Buch bietet Ihnen als Beginner einen fundierten Einstieg in Planung und Realisierung professioneller Projekte mit Extbase und Fluid. Fortgeschrittene Entwickler profitieren von wertvollen Tipps aus der Praxis. Patrick Lobacher verbindet hier jahrelange Projekterfahrung mit seiner Expertise als Trainer und Fachbuchautor; so gelingt es ihm, seinen Lesern von Beginn an einen unmittelbaren Zugang zur komplexen Thematik zu verschaffen und theoretische Grundlagen in praxisrelevanten Szenarien zu vermitteln.

Dabei wird ein didaktisches Beispiel verfolgt, welches Stück für Stück mit Funktionen angereichert wird. Am Ende stehen sehr komplexe Themen, wie AJAX, FAL, Backend-Module, JSON-View, Property Mapper & Co. Jedes der Beispiele kann zudem sofort auf GitHub heruntergeladen werden.

Das Werk ist vollständig neu zu TYPO3 CMS ab Version 7 LTS überarbeitet worden und damit für die nächsten Releases gerüstet. Durch den Wechsel zu Leanpub ist es möglich geworden, dass der Käufer zukünftige Korrekturen, Updates und Erweiterungen kostenlos erhalten wird - darüber freue ich mich als Autor besonders. Viel Spaß mit Extbase & Fluid und natürlich mit dem vorliegenden Buch!

Patrick Lobacher

Author

About the Author

Michael Schams

Michael Schams is a well-known, long-term member of the TYPO3 community with many years of professional experience. He holds a master's degree in computer sciences, is an international advocate of open-source software, and a regular writer for technical journals and online media.

Currently based in Melbourne (Australia), Michael consults with clients across the globe to achieve best outcomes in the digital space. He is a member of the TYPO3 Education Committee and an AWS certified Cloud Practitioner and an AWS certified Solutions Architect.

? https://schams.net

Translations

Translations

Languages

Contents

Table of Contents

1.Vorwort

  1. Bookmarken Sie die Buch-Website
  2. Quelltexte in diesem Buch
  3. 1.1TYPO3 CMS 7 LTS
  4. 1.2Meine persönliche Extbase-Geschichte
  5. 1.3Danksagung
  6. 1.4Changelog

2.Der moderne Weg der Extension-Programmierung

  1. 2.1Ein neues TYPO3 ensteht
  2. 2.2Das Berlin-Manifesto
  3. 2.3Die Geburtsstunde von Flow aka TYPO3 Flow aka FLOW3
  4. 2.4Phoenix aus der Asche
  5. 2.5Das TYPO3-Dilemma
  6. 2.6Der Split
  7. 2.7Die Geschichte von Extbase & Fluid
  8. 2.7.1Backports: Extbase & Fluid
  9. 2.7.2Höheres Programmierniveau

3.Grundlagen der objektorientierten Programmierung (OOP)

  1. OOP in Extbase & Fluid
  2. 3.1Klassen und Objekte
  3. TYPO3 Coding Guidelines
  4. Schreibweise
  5. 3.2Methoden
  6. 3.2.1Der Pfeil-Operator
  7. 3.2.2Der Konstruktor
  8. 3.2.3Zugriff mittels $this
  9. 3.2.4Methoden mit Inhalt füllen
  10. 3.3Vererbung von Klassen
  11. 3.3.1Zugriff mittels parent
  12. 3.3.2Überprüfung der Klassenzugehörigkeit
  13. 3.4Abstrakte Klasse: Kontrollierte Vererbung
  14. 3.5Interfaces
  15. 3.6Sichtbarkeiten: public und protected
  16. Sichtbarkeiten in Extbase & Fluid
  17. 3.6.1Getter und Setter
  18. 3.7Type Hints
  19. 3.8Statische Zugriffe
  20. 3.9Namespaces
  21. 3.10Wichtige Entwurfs- und Architekturmuster
  22. 3.10.1Singleton
  23. 3.10.2Prototyp
  24. 3.10.3Dependency Injection
  25. 3.11Annotations

4.Domain Driven Design

  1. Definition von DDD
  2. 4.1Infrastructure Ignorance
  3. 4.2Vertikale Schichtarchitektur
  4. 4.3Das Domain Model
  5. 4.3.1Ubiquitous Language
  6. Pragmatisches Vorgehen
  7. 4.3.2Bausteine für das DDD
  8. 4.4DDD strukturieren
  9. 4.4.1Bounded Context (BC)
  10. 4.4.2Context Map
  11. 4.4.3Core Domain
  12. 4.4.4Shared Kernel
  13. 4.4.5Zusammenfassung
  14. 4.4.6Weitere Links

5.Extbase im Überblick

  1. 5.1Installation von Extbase & Fluid
  2. Versionsnummern der System Extensions
  3. 5.1.1PHP Doc Comments erhalten
  4. 5.2Installation der Extension efempty
  5. Extensions, Plugins und Modules
  6. 5.3Rundgang durch die Extension
  7. 5.3.1Die Dateien ext_emconf.php und ext_icon.gif
  8. 5.3.2ext_tables.php
  9. Mehrere Plugins in einer Extension
  10. 5.3.3ext_localconf.php
  11. 5.3.4Controller: Pluswerk\Efempty\Controller\StartController
  12. 5.3.5Domain: Pluswerk\Efempty\Domain\Model\Start
  13. 5.3.6Die Ausgabe über den View
  14. Schreibweise von Templates
  15. 5.3.7Aufruf der Show-Action

6.Erstellung des Domain Models (Modellierung)

  1. 6.1Das Domain Model für das Buch
  2. 6.2Grundidee
  3. 6.2.1Das Glossar
  4. 6.2.2Modell
  5. 6.3Modellierung in Extbase - Der Extension Builder
  6. Vertrauen Sie dem Extension Builder nicht zu sehr!
  7. Aktuelle Entwicklerversion des Extension Builders
  8. 6.3.1Extension-Eigenschaften
  9. Exakt an das Beispiel halten
  10. 6.3.2Domain Model
  11. Didaktik: Die Reihenfolge ist wichtig
  12. 6.3.3Eigenschaften des Domain Models
  13. 6.3.4Relationen des Domain Models
  14. 6.4Anpassen der Extension bzgl. Klassen-Autoloader
  15. 6.5Installation der Extension
  16. 6.6Analyse der Dateien des Extension Builders
  17. 6.7Weitere Funktionen des Extension Builders
  18. 6.7.1Backup erstellen
  19. 6.7.2Model modifizieren
  20. 6.7.3Class Builder
  21. Quellcode

7.Vorbereitung

  1. 7.1Frontend Frameworks
  2. 7.2Statisches TypoScript laden
  3. 7.3CSS Datei laden
  4. 7.4IDE Einstellungen
  5. 7.4.1PhpStorm: Projekt anlegen
  6. 7.4.2PhpStorm: TYPO3 Core-Dateien in den Include-Pfad aufnehmen
  7. 7.4.3PhpStorm: Schema-Dateien für Fluid einbinden
  8. 7.4.4PhpStorm: Tipp für Auflösung von Klassen
  9. 7.4.5PhpStorm: TYPO3 Extension phpstorm
  10. 7.5Fehlermeldung in TYPO3
  11. 7.6Systemcache Menüpunkt aktivieren
  12. Quellcode

8.Der CRUD-Prozess

  1. 8.1Erstellung eines Objekts (Create)
  2. 8.1.1Action im Controller anlegen
  3. 8.1.2Template für listAction anlegen
  4. 8.1.3Exkurs: Rendering des Templates
  5. Rendern eines Views ohne Ausgabe
  6. 8.1.4Statische Blogs anlegen
  7. 8.1.5Persistierung der Blogs
  8. 8.1.6Exkurs: Persistierung
  9. Implizite Persistierung
  10. 8.1.7Der PersistenceManager: manuelle Persistierung
  11. Öffentliche API
  12. 8.1.8Aufteilung der Erzeugung auf eine eigene Action
  13. Der Redirect
  14. 8.1.9Formular zum Anlegen eines Objektes
  15. Achten Sie auf den Cache
  16. 8.2Anzeigen eines Objekts (Read)
  17. 8.3Aktualisierung eines Objekts (Update)
  18. 8.4Löschen eines Objekts (Delete)
  19. Übung
  20. 8.5Optische Verbeserungen
  21. 8.6Zusammenfassung
  22. Quellcode

9.Das Fluid-Templating: Templates, Layouts & Partials

  1. 9.1Layout erstellen und referenzieren
  2. Optionale Sections
  3. 9.2Partials
  4. 9.2.1Einfache Partials
  5. Unterverzeichnisse bei Partials und Layouts und Extension
  6. 9.2.2Komplexe Partials
  7. Übertragung von Argumenten ins Partial
  8. Übung
  9. Quellcode

10.Query Manager und Repositories

  1. 10.1Aufbau einer Repository Klasse
  2. 10.2Schreibende Repository Funktionen
  3. 10.3Lesende Repository Funktionen
  4. 10.4Default-Aufbau einer Query
  5. 10.4.1Exkurs: Debugging
  6. 10.5Anpassen des Queries
  7. Quelle in Extbase
  8. 10.5.1Ergebnis-Set bestimmen
  9. 10.5.2Ergebnisset einschränken
  10. 10.5.3Logische Verknüpfungen
  11. 10.5.4Natives SQL
  12. 10.5.5Query-Settings
  13. 10.6Beispiel: Suchwort im Titel
  14. 10.7Dynamische Suche auf dem Repository
  15. Escapen
  16. 10.8Exkurs: Request-Objekt
  17. Quellcode

11.Konfiguration via TypoScript und Flexforms

  1. 11.1TypoScript
  2. 11.1.1Scope im Setup
  3. 11.1.2Grundaufbau
  4. 11.1.3Optionen: view
  5. 11.1.4Optionen: persistence
  6. 11.1.5Optionen: objects
  7. Klassen Autoloader
  8. 11.1.6Optionen: features
  9. 11.1.7Optionen: mvc
  10. 11.1.8Optionen: settings
  11. 11.1.9Optionen: _LOCAL_LANG
  12. 11.1.10Optionen: _CSS_DEFAULT_STYLE
  13. 11.2FlexForms
  14. TCA überschreiben
  15. 11.2.1FlexForm Konfiguration
  16. FlexForm immer abspeichern
  17. Bug in der Ermittlung der Konfiguration
  18. 11.2.2Switchable Controller Actions (SCA)
  19. Hartnäckige Flexform
  20. 11.3TypoScript für weitere Bearbeitung des Buches setzen
  21. Settings in anderen Bereichen auslesen
  22. 11.4TypoScript für Backend-Module
  23. Quellcode

12.Validierung und Error-Handling

  1. 12.1Zeitpunkt der Validierung
  2. 12.2Error-Handling
  3. 12.3Die Validierung in der Übersicht
  4. Wann wird genau validiert?
  5. 12.4Property-Validation
  6. 12.4.1Eingebaute Validatoren
  7. 12.4.2Mehrere Validatoren
  8. 12.4.3Eigene Validatoren
  9. Rückgabewerte der Funktion isValid()
  10. 12.5Object-Validation
  11. Anderes Verzeichnis für den Object Validator
  12. 12.6Action-Validation
  13. 12.7Fehlerangabe beim Formularfeld
  14. 12.7.1Möglichkeit 1 - mit Bordmitteln
  15. ViewHelper Inline Syntax
  16. 12.7.2Möglichkeit 2 - mit Hilfe eines ViewHelpers
  17. Quellcode

13.Relationen

  1. 13.1Relation im Domain Model
  2. 13.2Das Table Configuration Array (TCA)
  3. 13.2.1TCA: ctrl
  4. 13.2.2TCA: interface
  5. 13.2.3TCA: types
  6. 13.2.4TCA: palettes
  7. 13.2.5TCA: columns
  8. LowLevel-Zugriff zur Datenbank
  9. 13.3Der CRUD-Prozess der Posts
  10. 13.3.1Vorbereitungen
  11. 13.3.2Posts anlegen (Create)
  12. Übung
  13. 13.3.3Posts ansehen (Read)
  14. 13.3.4Posts editieren (Update)
  15. 13.3.5Posts löschen (Delete)
  16. 13.4Die m:n-Beziehung am Beispiel der Tags
  17. 13.4.1Anlegen der Tags im Backend
  18. 13.4.2Repository für die Tags
  19. 13.4.3Anpassen des Post-Controllers
  20. 13.4.4Anpassen der Templates und Partials
  21. 13.4.5Anzeige der Tags in der Liste
  22. Das Attribut iteration im For-ViewHelper
  23. 13.5Die 1:1-Relation am Beispiel des Autors
  24. 13.5.1Anlegen der Frontend User und Gruppen
  25. 13.5.2Koppeln des Domänen-Objekts Author mit der fe_users-Tabelle
  26. 13.5.3Festlegen des Autors beim Erstellen und Editieren eines Posts
  27. 13.5.4Eingeloggten User als Autor verwenden
  28. 13.6Comments & AJAX
  29. 13.6.1Registrierung der AJAX-Action
  30. 13.6.2Anzeige der Kommentare
  31. 13.6.3JavaScript-Handler
  32. console.log und IE
  33. 13.6.4Ajax-Action im Post-Controller
  34. 13.6.5AJAX Page-Type im TypoScript festlegen
  35. Kommentare nur für eingeloggte User ermöglichen
  36. Quellcode

14.Eigene ViewHelper erstellen

  1. 14.1Namespace-Deklaration
  2. 14.2Text-ViewHelper
  3. 14.2.1Parameter via Attribut
  4. 14.2.2Parameter via Inhalt
  5. 14.2.3TSFE-ViewHelper
  6. 14.3Tag-ViewHelper
  7. Allgemeine Attribute
  8. 14.4If-ViewHelper
  9. 14.5Widget-ViewHelper
  10. 14.5.1Sort Widget
  11. 14.5.2A-Z Widget
  12. Quellcode

15.Mehrsprachigkeit

  1. 15.1Sprachen konfigurieren
  2. 15.2Sprachlabels
  3. 15.3Sprachlabels mit Platzhaltern
  4. 15.4Sprachlabels mit TypoScript überschreiben
  5. 15.5Sprachlabels in PHP
  6. 15.6Mehrsprachigkeit bei Domänenobjekten
  7. 15.6.1Datenbank und TCA
  8. 15.6.2Sprache im Backend anlegen
  9. 15.6.3Datensatz übersetzen
  10. 15.6.4Repository richtig ansprechen
  11. 15.6.5Anlegen von übersetzten Datensätzen
  12. Quellcode

16.Backend Module

  1. 16.1Registrierung des Moduls
  2. 16.2Sprachdatei für die Labels
  3. 16.3TypoScript
  4. 16.4Comment-Repository
  5. 16.5Comment-Controller
  6. 16.6Templates
  7. 16.6.1Aufbau Backend-Markup
  8. 16.6.2Index-Action
  9. 16.6.3List-Action
  10. 16.6.4CSH-Buttons
  11. 16.6.5Action-Menü
  12. 16.6.6Shortcut-Button
  13. 16.6.7Icon-Button
  14. Quellcode

17.Der Property Mapper

  1. Das folgende Kapitel betrachtet einen vom didaktischen Beispiel losgelösten Sachverhalt
  2. 17.1Beispiel 1: Einfacher Typ
  3. 17.2Beispiel 2: Komplexer Typ
  4. 17.3Konfigurieren des Property Mapper
  5. 17.4Konfiguration des Property Mapping im MVC Stack
  6. IDE-konforme Schreibweise
  7. 17.5Sicherheitserwägungen
  8. 17.6Ablauf der Konvertierung
  9. 17.6.1Automatische Auflösung des TypeConverters

18.Best Practices

  1. 18.1Flash Messages
  2. 18.1.1Mehrere FlashMessage-Queues
  3. 18.1.2Zugriff im Controller
  4. 18.2Plugin per TypoScript laden
  5. 18.3RSS-Feed
  6. 18.3.1Fontawesome Icon
  7. 18.3.2Rss-Action registrieren
  8. 18.3.3RSS-Action im Blog-Controller
  9. 18.3.4XML-View
  10. 18.3.5Feld crdate nachrüsten
  11. 18.3.6TypoScript Setup
  12. 18.4UriBuilder
  13. 18.5Upload von Dateien
  14. 18.5.1Anpassen des Domain Models
  15. 18.5.2Hinzufügen eines Upload-Feldes
  16. 18.5.3Anpassungen im Blog-Controller
  17. 18.5.4Anpassungen im Blog Model
  18. 18.5.5TCA anpassen
  19. 18.6Upload via FAL
  20. 18.6.1Blog Domain Model
  21. 18.6.2FileReference Domain Model
  22. 18.6.3Datenbank
  23. 18.6.4TCA des Blog Domain Model
  24. 18.6.5TypoScript
  25. 18.6.6Speicherort für die Dateien
  26. 18.6.7Upload-Feld im Template
  27. 18.6.8Show-Template
  28. 18.6.9Form.Upload ViewHelper
  29. 18.6.10Blog-Controller
  30. 18.6.11Registrierung TypeConverter
  31. 18.6.12Upload File Reference Converter
  32. 18.7File Abstraction Layer (FAL)
  33. 18.7.1Datenbank
  34. 18.7.2TCA
  35. 18.7.3XLIFF
  36. 18.7.4Domain Model
  37. 18.7.5Show-Template des Post-Controllers
  38. 18.8StdWrap in den Settings
  39. 18.9Signal Slot Dispatcher
  40. 18.9.1Signal
  41. 18.9.2Slot
  42. 18.9.3Eingebaute Signale
  43. 18.9.4Beispiel für die Nutzung eingebauter Signale
  44. Schreibender Zugriff via Slot
  45. 18.9.5Eigene Signale erstellen
  46. 18.10Category API
  47. 18.11Extbase Models
  48. 18.12Scheduler Tasks
  49. 18.13JSON View
  50. 18.13.1JSON-View im Blogbeispiel
  51. Quellcode

19.PHP 7

  1. 19.1Fehlermeldung “FileReference” (should be kompatible)

20.Reference

  1. 20.1Datei ext_emconf.php
  2. 20.2FlexForm Field Types
  3. 20.2.1Textfeld
  4. 20.2.2Datumsfeld
  5. 20.2.3Checkbox
  6. 20.2.4Textarea
  7. 20.2.5Textarea mit RTE
  8. 20.2.6Radio Buttons
  9. 20.2.7Selectbox
  10. 20.2.8Selectbox (Multi-Select)
  11. 20.2.9Page Browser

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub