TYPO3 Fluid Tutorial: Wie man Fluid verwendet (Anfänger bis Fortgeschrittene Leitfaden)

TYPO3 Fluid - Eine schnelle & sichere Template-Engine des TYPO3 CMS. Egal, ob Sie TYPO3 Entwickler oder TYPO3 Integrator sind; Sie müssen Kenntnisse in TYPO3 Fluid haben. Sind Sie auf der Suche nach essentiellen TYPO3 Fluid Kenntnissen für Fortgeschrittene? Dann sind Sie hier genau richtig; hier geht's los!

TYPO3 Fluid Tutorial: Wie man Fluid verwendet (Anfänger bis Fortgeschrittene Leitfaden)

TYPO3 Fluid ist eine sichere und flexible Template Engine, die in TYPO3 verwendet wird, um Frontend-Templates ohne umfangreiches PHP zu erstellen. Sie hilft Entwicklern und Integratoren, strukturierte, wartbare UI-Komponenten für TYPO3-Projekte zu erstellen.

Wenn Sie als Entwickler oder Integrator mit TYPO3 arbeiten, ist das Verständnis von Fluid unerlässlich. Es wird in TYPO3-Projekten für das Template-Rendering und die Extension-Entwicklung verwendet.

In diesem Leitfaden erfahren Sie, was TYPO3 Fluid ist, wie es funktioniert und wie Sie es effektiv nutzen. Wir behandeln Architektur, Syntax, ViewHelpers, benutzerdefinierte ViewHelpers und praktische Best Practices.

Anleitung zu TYPO3 Fluid

Was ist TYPO3 Fluid?

TYPO3 Fluid ist eine Template-Engine in TYPO3, die verwendet wird, um dynamische Frontend-Ausgaben zu erstellen. Es trennt Präsentation von Logik und ermöglicht es Entwicklern, saubere und wartbare Templates zu erstellen, ohne komplexes PHP zu schreiben.

„TYPO3 Fluid - Eine schnelle, sichere und erweiterbare Template-Engine für PHP.“
 – typo3.org

TYPO3 Fluid wird hauptsächlich von Frontend-Entwicklern und Integratoren verwendet, um HTML, CSS und JavaScript in TYPO3 Templates zu kombinieren. Es ermöglicht die Kontrolle darüber, wie Inhalte gerendert werden, ohne auf umfangreiche Backend-Logik angewiesen zu sein.

Beispiel aus der Praxis:

Beim Erstellen einer TYPO3 Website können Sie Fluid verwenden, um dynamische Inhalte wie Blogbeiträge, Produktlisten oder mehrsprachige Inhalte mit einfacher Template-Logik anzuzeigen, anstatt PHP zu schreiben.

Warum TYPO3 Fluid in TYPO3-Projekten verwenden?

TYPO3 Fluid wurde entwickelt, um eine strukturierte und sichere Möglichkeit zur Handhabung der Frontend-Darstellung in TYPO3-Projekten zu bieten.

  • Sicherheit: Entwickelt mit den Sicherheitsstandards von TYPO3, um vor häufigen Problemen wie XSS zu schützen
  • Trennung von Logik & Präsentation: Hält Backend-Logik aus den Templates heraus, was den Code sauberer und leichter wartbar macht
  • TYPO3-nativer Vorteil: Vollständig in TYPO3 integriert, im Gegensatz zu externen Engines wie Twig oder Blade
  • Erweiterbarkeit: Hochflexibel und kann mit benutzerdefinierten ViewHelpers erweitert werden
  • Benutzerfreundlichkeit: Verwendet eine einfache, XML-basierte Syntax, die gut innerhalb von HTML-Templates funktioniert
  • Unternehmenszuverlässigkeit: Stabil und skalierbar für große TYPO3-Projekte, was für Unternehmens- und deutsche Marktanwendungen entscheidend ist

Geschichte von TYPO3 Fluid (Kurzer Überblick)

TYPO3 Fluid wurde 2008 als Teil von Extbase und TYPO3 Phoenix (jetzt Neos CMS) eingeführt. Es wurde später in den Kern von TYPO3 als Standard-Templating-Engine übernommen.

Der Code wurde von Claus Due in ein eigenständiges Paket umstrukturiert, wodurch Fluid ab TYPO3 v8 und über Frameworks wie Neos/Flow hinweg als Bibliothek wiederverwendbar wurde.

TYPO3 Fluid Tutorial: Ihr Erstes Template (Schnellstart)

Lassen Sie uns ein einfaches TYPO3 Fluid Beispiel erstellen, um zu verstehen, wie das Rendering funktioniert.

TYPO3 Fluid Beispiel: Grundlegendes Bedingtes Rendering

Fluid Template (Eingabe)

 

<h2>Welcome Message</h2>
<f:if condition="{isLoggedIn}">
<f:then>
<p>Welcome back, user!</p>
</f:then>
<f:else>
<p>Please log in to continue.</p>
</f:else>
</f:if>

 

Ausgabe (Frontend)

Wenn isLoggedIn = true:

 

<h2>Welcome Message</h2>
<p>Welcome back, user!</p>

 

Wenn isLoggedIn = false:

 

<h2>Welcome Message</h2>
<p>Please log in to continue.</p>

 

Ein weiteres schnelles Beispiel

Fluid Template

 

<h4>How easy to learn TYPO3 Fluid Template?</h4>
<p>
<f:if condition="{myExpression}">
<f:then>Indeed, it’s very easy!</f:then>
<f:else>Hmm, seems a bit difficult</f:else>
</f:if>
</p>

Ausgabe (wenn myExpression = true)

 

<h4>How easy to learn TYPO3 Fluid Template?</h4>
<p>Indeed, it’s very easy!</p>

 

Wie es funktioniert

  • <f:if> prüft eine Bedingung (isLoggedIn, myExpression)
  • <f:then> rendert Inhalte, wenn die Bedingung wahr ist
  • <f:else> rendert Fallback-Inhalte, wenn die Bedingung falsch ist
  • TYPO3 Fluid wertet die Bedingung aus, rendert den entsprechenden Block und gibt das finale HTML im Frontend aus.

Wichtige Erkenntnis

Mit TYPO3 Fluid steuern Sie die Frontend-Ausgabe mit einfacher Template-Logik, ohne komplexes PHP zu schreiben.

Wie man TYPO3 Fluid installiert

TYPO3 Fluid ist standardmäßig in TYPO3 als Teil der Kernsystemerweiterung (EXT:fluid) enthalten. In Standardinstallationen ist keine separate Installation erforderlich.

TYPO3 Fluid Installation mit Composer (Wichtig)

In Composer-basierten TYPO3-Projekten ist ein häufiges Problem das Fehlen der erforderlichen Inhalts-Rendering-Erweiterung.

Stellen Sie sicher, dass fluid_styled_content installiert ist:

composer require typo3/cms-fluid-styled-content

Häufige TYPO3 Fluid Installationsfehler

  • TYPO3 Fluid ist verfügbar, aber das Frontend-Rendering funktioniert nicht wie erwartet
  • Ursache: EXT:fluid_styled_content ist nicht installiert oder aktiviert

Stellen Sie sicher, dass diese Erweiterung ordnungsgemäß enthalten ist, um das Standard-Inhalts-Rendering in TYPO3 zu ermöglichen.

TYPO3 Fluid Support & Ressourcen

Sie können TYPO3 Fluid auf GitHub erkunden, um Updates, Probleme und Beiträge zu finden. Für offizielle Dokumentation und bewährte Praktiken beziehen Sie sich auf TYPO3-Ressourcen und Community-Foren.

Wer sollte TYPO3 Fluid lernen?

TYPO3 verlässt sich auf Fluid als seine Kern-Templating-Engine, einschließlich Backend-Rendering. TYPO3 erweitert Fluid durch Systemerweiterungen wie ext:fluid, um es vollständig in das CMS zu integrieren.

TYPO3 Fluid ist essenziell für:

  • Frontend-Entwickler, die mit HTML, CSS und JavaScript arbeiten, um TYPO3 Templates zu erstellen
  • TYPO3 Integratoren, die für die Umsetzung von Designs in TYPO3-Projekten verantwortlich sind
  • TYPO3-Agenturen, die skalierbare und wiederverwendbare Website-Lösungen für Kunden erstellen
  • Enterprise-Teams, die große, komplexe TYPO3 Installationen verwalten
  • Freiberufliche TYPO3 Entwickler/Integratoren, die individuelle TYPO3-Projekte umsetzen

Mit Fluid können Sie die Frontend-Ausgabe in TYPO3 effizient integrieren und steuern, ohne stark auf PHP angewiesen zu sein.

TYPO3 Fluid Grundlagen (Dateistruktur, Syntax & Ausdrücke)

Beginnen wir mit den Kernfundamenten von TYPO3 Fluid, Dateistruktur, Syntax und Ausdrücken.

TYPO3 Fluid Dateistruktur erklärt

TYPO3 Fluid folgt einem strukturierten Ansatz mit Templates, Layouts und Partials.

 

typo3conf/ext/extension_key

 

Wie dies in einem realen Projekt funktioniert:

  • Templates → Definieren die Seitenstruktur (z.B. Startseite, Blog-Seite)
  • Layouts → Bieten einen gemeinsamen Rahmen (Header, Footer, Basisstruktur)
  • Partials → Wiederverwendbare Komponenten (z.B. Karten, Buttons, Navigation)

In einem typischen TYPO3-Projekt verwenden Sie:

  • Templates für die vollständige Seitenwiedergabe
  • Layouts für ein konsistentes Design über die Seiten hinweg
  • Partials, um sich wiederholenden UI-Code zu vermeiden

TYPO3 Fluid Syntax (Tag- vs Inline-Notation)

TYPO3 Fluid unterstützt zwei Syntaxformate:

1. Tag-basierte Syntax (am häufigsten verwendet)

 

<f:count>{arrVariable}</f:count>

 

2. Inline-Notation (wird in Attributen oder kompakter Logik verwendet)

 

{arrVariable -> f:count()}

 

Tag- vs Inline-Modus (Wann verwenden)

  • Verwenden Sie die Tag-Syntax
    • Für klare Struktur und Lesbarkeit
    • Beim Arbeiten mit Blöcken (Bedingungen, Schleifen, Formatierung)
  • Verwenden Sie die Inline-Notation
    • Innerhalb von HTML-Attributen
    • Für kurze Ausdrücke

Beispiel

Schlechte Nutzung (Tag innerhalb eines Attributs):

 


<ol class="item-count-<f:count>{arrVariable}</f:count>">
My List
</ol>

 

Korrekte Nutzung (Inline-Notation):

 



<ol class="item-count-{arrVariable -> f:count()}">

My List

</ol>

 

TYPO3 Fluid-Ausdrücke (Beispiele & Nutzung)

Ausdrücke {} sind der Kern der Inline-Logik von Fluid. Sie ermöglichen es, Werte auszugeben, Operationen durchzuführen und Bedingungen anzuwenden.

Beispiele:

 

{variable}
{myArray -> f:count()}
{myPossiblyArray as array}
{checkVariable ? thenVariable : elseVariable}
{myNumber + 3}

 

Diese Ausdrücke ermöglichen es, dynamische Daten direkt in Vorlagen zu verarbeiten, ohne komplexes PHP zu schreiben.

Diese Grundlage ist entscheidend, bevor man zu ViewHelpers und fortgeschrittenen Fluid-Konzepten übergeht.

TYPO3 Fluid Architektur (Templates, Layouts, Partials)

TYPO3 Fluid basiert auf drei Kernkomponenten: Templates, Layouts und Partials. Zusammen definieren sie, wie Inhalte in TYPO3 strukturiert und gerendert werden.

Kernkomponenten von TYPO3 Fluid

  • Templates
    Hauptdateien, die die Ausgabe auf Seitenebene steuern. Sie werden normalerweise Controllern und Aktionen zugeordnet.
  • Layouts
    Gemeinsame Wrapper (z.B. Header, Footer, Struktur), die von mehreren Templates verwendet werden.
  • Partials
    Wiederverwendbare UI-Komponenten (z.B. Karten, Buttons, Abschnitte), die überall eingesetzt werden können.

Wie TYPO3 Fluid Rendering funktioniert (Schritt-für-Schritt-Ablauf)

  1. Ein Controller wählt ein Template aus
  2. Das Template verwendet ein Layout für die Gesamtstruktur
  3. Innerhalb des Templates werden Partials für wiederverwendbare Abschnitte gerendert
  4. Fluid verarbeitet alles und gibt das endgültige HTML aus

Diese Trennung hält den Code sauber und wiederverwendbar in großen Projekten.

1. Templates in TYPO3 Fluid

 

<!-- File: /typo3conf/ext/extension_key/Resources/Private/Templates/MyTemplate.html -→

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true">

<f:section name="MyTemplate">
The main template’s section will render.
</f:section>

<f:render section="MyTemplate" />
</html>

 

Wann verwenden:

  • Struktur auf Seitenebene
  • Controller-basiertes Rendering
  • Dynamische Inhaltsausgabe

3. Partials in TYPO3 Fluid

 

<!-- File: /typo3conf/ext/extension_key/Resources/Private/Partials/MyPartial.html -→

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true">

<p>My First Partial: {variable}</p>
</html>

 

Aufruf eines Partials in Template

 

<f:section name="MyTemplate">

<f:render partial="MyPartial" arguments="{variable: 'my-value'}" />

</f:section>

<f:render section="MyTemplate" />

 

Wann verwenden:

  • Wiederverwendbare UI-Elemente
  • Komponenten, die in mehreren Templates verwendet werden
  • Reduzierung von doppeltem Code

Wichtige Erkenntnis

  • Templates = Seitenstruktur
  • Layouts = gemeinsamer Wrapper
  • Partials = wiederverwendbare Komponenten

Diese Architektur ist auf Skalierbarkeit und Wartbarkeit ausgelegt, insbesondere in großen TYPO3-Projekten.

TYPO3 Fluid ViewHelpers (Vollständiger Leitfaden mit Beispielen)

ViewHelpers sind wiederverwendbare Bausteine in TYPO3 Fluid, die zum Formatieren, Verlinken, Rendern und mehr verwendet werden. Sie helfen, benutzerdefinierten Code zu reduzieren und die Entwicklung zu beschleunigen.

Nachfolgend sind die am häufigsten verwendeten ViewHelpers nach Zweck gruppiert.

Formatierungs-ViewHelpers in TYPO3 Fluid

Wird verwendet, um Text, Daten und Inhaltsausgaben zu formatieren.

 

<!-- Date formatting -->
<f:format.date>{dateObject}</f:format.date>
<!-- Output: 1980-12-13 -→

<!-- Change case -->
<f:format.case>Some Text with miXed case</f:format.case>
<!-- Output: SOME TEXT WITH MIXED CASE -→

<!-- Line breaks -->
<f:format.nl2br>{text_with_linebreaks}</f:format.nl2br>
<!-- Output: Converts line breaks to <br /> -→

<!-- Strip HTML tags -->
<f:format.stripTags>Some Text with <b>Tags</b></f:format.stripTags>
<!-- Output: Some Text with Tags -→

 

ViewHelper in TYPO3 Fluid verknüpfen

Werden verwendet, um Links dynamisch innerhalb von TYPO3 zu generieren.

<f:link.typolink parameter="{link}">
Linktext
</f:link.typolink>

Ausgabe:

<a href="/page/path/name.html?X=y" title="testtitle with whitespace" target="_blank"> 
Linktext 
</a>

Medien-ViewHelper (Bilder & Videos)

Wird zum Rendern von Bildern, Videos und Medienressourcen verwendet.

 

<!-- Image rendering -->
<f:image src="EXT:myext/Resources/Public/typo3_logo.png" alt="alt text" />
<f:image image="{imageObject}" />
<!-- Inline notation -->
{f:image(src: 'EXT:viewhelpertest/Resources/Public/typo3_logo.png', alt: 'alt text', minWidth: 30, maxWidth: 40)}
<!-- Media rendering -->
<f:media file="{file}" width="400" height="375" />

 

Ausgabe:

  • Bild → <img ... />
  • Video → <video ...>

Debugging-ViewHelper in TYPO3 Fluid

Wird während der Entwicklung verwendet, um Variablen und Daten zu inspizieren.

 

<f:debug>{testVariables.array}</f:debug>

 

Ausgabe:

  • Zeigt strukturierte Debug-Informationen auf dem Bildschirm an

Andere nützliche ViewHelper

 

<!-- Pagination -->
<f:widget.paginate objects="{blogs}" as="paginatedBlogs">
<!-- Use inside loop -->
</f:widget.paginate>

<!-- TypoScript object rendering -->
<f:cObject typoscriptObjectPath="lib.customHeader" data="{article}" currentValueKey="title" />

<!-- Translation -->
<f:translate key="key1" />
{f:translate(key: 'someKey', arguments: {0: 'dog', 1: 'fox'}, default: 'default value')}

<!-- Forms -->
<f:form action="..." name="customer" object="{customer}">
<f:form.hidden property="id" />
<f:form.textfield name="myTextBox" value="default value" />
</f:form>

<!-- Comments (not rendered) -->
<f:comment>Some comment</f:comment>

Wichtige Erkenntnis

  • ViewHelpers reduzieren die Notwendigkeit für benutzerdefinierte Logik
  • Sie verbessern die Lesbarkeit und Wartbarkeit
  • Sie sind unerlässlich für den Aufbau skalierbarer TYPO3-Vorlagen

TYPO3 Fluid Variablen, Bedingungen & Schleifen (Mit Beispielen)

TYPO3 Fluid bietet integrierte Möglichkeiten, um dynamische Daten mit Variablen, Bedingungen und Schleifen zu verarbeiten.

Sie können Variablen direkt in Vorlagen definieren und verwenden.

 

{f:variable(name: 'FluidVariable', value: 'Wert zuweisen')}
<f:variable name="FluidVariable">Wert zuweisen</f:variable>

 

Wenn-Bedingungen

Wird verwendet, um das Rendering basierend auf Bedingungen zu steuern.

 

<f:if condition="{FluidVariable} > 100&quot;></span></code><br><code class="><span>  <f:then>Wahr</f:then></span></f:if>
<f:else>Falsch</f:else>

 

Schleifen (f:for)

Wird verwendet, um über Arrays oder Sammlungen zu iterieren.

 

<f:variable name="FluidArray"></f:variable>
{fruit1: 'Apfel', fruit2: 'Birne', fruit3: 'Banane', fruit4: 'Kirsche'}


<f:for each="{FluidArray}" as="fruit" key="label"></f:for>
  • {label}: {fruit}

  • Switch Case

    Wird für mehrere bedingte Verzweigungen verwendet.

     

    <f:switch expression="{person.gender}">
    <f:case value="male">Mr.</f:case>
    <f:case value="female">Mrs.</f:case>
    <f:defaultCase>Mr. / Mrs.</f:defaultCase>
    </f:switch>

     

    Wichtige Erkenntnis

    Diese Kernfunktionen ermöglichen es Ihnen, die Anzeige von Daten in TYPO3 Fluid-Templates zu steuern, ohne komplexe Backend-Logik zu schreiben.

    Mehr erkunden

    Reale Anwendungsfälle von TYPO3 Fluid in Projekten

    TYPO3 Fluid wird in realen Projekten verwendet, um das Frontend-Rendering auf strukturierte und skalierbare Weise zu handhaben. Nachfolgend sind die häufigsten Anwendungsfälle in TYPO3-Projekten aufgeführt.

    TYPO3 CMS Template Rendering

    Fluid wird verwendet, um vollständige Seitentemplates in TYPO3 zu erstellen.

    • Dynamische Inhalte aus dem Backend rendern (Text, Bilder, Inhaltselemente)
    • Seiten mit Templates, Layouts und Partials strukturieren
    • Ausgabe mit Bedingungen und Schleifen steuern

    Beispiel: Startseite, Blog-Seiten, Landingpages

    TYPO3 Extension-Entwicklung mit Fluid

    Fluid wird häufig in benutzerdefinierten TYPO3 extensions verwendet.

    • Daten aus Controllern rendern (Extbase)
    • Datenbankgesteuerte Inhalte anzeigen
    • Benutzerdefinierte Module und Plugins erstellen

    Beispiel: Blog-Erweiterung, Produktliste, benutzerdefinierte Formulare

    Mehrsprachige Websites mit TYPO3 Fluid

    Fluid integriert sich in das Lokalisierungssystem von TYPO3.

    • Verwenden Sie  für Sprachlabels
    • Mehrsprachige Inhalte dynamisch rendern
    • Konsistente Vorlagen über Sprachen hinweg beibehalten

    Beispiel: Deutsch-Englische Unternehmenswebsites

    Wiederverwendbare Komponenten

    Fluid ermöglicht eine komponentenbasierte Entwicklung.

    • Verwenden Sie Partials für wiederverwendbare UI-Blöcke
    • Konsistenz über Seiten hinweg beibehalten
    • Reduzieren Sie doppelten Code

    Beispiel: Karten, Kopfzeilen, Fußzeilen, Inhaltsabschnitte

    Wichtigste Erkenntnis

    TYPO3 Fluid ist nicht nur eine Template-Engine, sondern die Grundlage für den Aufbau skalierbarer, wartbarer und unternehmensbereiter TYPO3-Frontend-Systeme.

    TYPO3 Fluid vs. andere Template-Engines

    Hier ist ein praktischer Vergleich von TYPO3 Fluid mit anderen beliebten Template-Engines.

    FunktionTYPO3 FluidTwigBlade
    ÖkosystemNativ zu TYPO3Symfony / Generisches PHPLaravel
    Integration mit TYPO3Volle native IntegrationErfordert EinrichtungNicht kompatibel
    LernkurveEinfach für TYPO3-NutzerModeratEinfach für Laravel-Nutzer
    Syntax-StilXML-basiert + inlineSauber, logikbasiertPHP-ähnliche Direktiven
    Trennung von LogikStarkStarkModerat
    Eingebaute HelferUmfangreiche ViewHelpersFilter & FunktionenBlade-Direktiven
    ErweiterbarkeitHoch (benutzerdefinierte ViewHelpers)HochHoch
    Leistung in TYPO3OptimiertNicht optimiertNicht anwendbar
    EinsatzbereichAm besten für TYPO3-ProjekteAllgemeine PHP-AnwendungenLaravel-Anwendungen

    Warum TYPO3 Fluid am besten für TYPO3-Projekte ist

    • Native Integration → Funktioniert direkt mit TYPO3-Kern-Funktionen
    • Keine zusätzliche Einrichtung → Bereits in TYPO3 enthalten
    • Optimiert für TYPO3-Rendering → Bessere Leistung im TYPO3-Kontext
    • ViewHelpers-Ökosystem → Speziell für TYPO3-Anwendungsfälle entwickelt
    • Unternehmensbereit → Stabil und skalierbar für große TYPO3-Projekte

    Wichtige Erkenntnis

    Wenn Sie mit TYPO3 arbeiten, ist TYPO3 Fluid die effizienteste und zuverlässigste Wahl. Andere Template-Engines wie Twig oder Blade sind besser für ihre eigenen Ökosysteme geeignet, nicht für TYPO3.

    Wann TYPO3 Fluid verwenden (und wann nicht)

    Die Wahl der richtigen Template-Engine hängt von den Anforderungen Ihres Projekts ab. Hier ist, wann TYPO3 Fluid am besten passt und wann nicht.

    Wann TYPO3 Fluid verwenden

    TYPO3 Fluid ist die beste Wahl, wenn Sie innerhalb des TYPO3-Ökosystems arbeiten und strukturierte, skalierbare Frontend-Lösungen erstellen.

    • TYPO3-basierte Unternehmenswebsites
    • CMS-gesteuerte strukturierte Projekte
    • Projekte, die eine starke Trennung von Logik und Präsentation erfordern
    • Langfristig wartbare TYPO3-Implementierungen

    Wann TYPO3 Fluid nicht verwenden

    TYPO3 Fluid ist außerhalb des TYPO3-Ökosystems oder für leichte Anwendungsfälle nicht ideal.

    • Nicht-TYPO3 PHP-Frameworks
    • Leichte Anwendungen ohne TYPO3
    • Projekte, die minimale Template-Logik erfordern
    • Umgebungen, in denen Twig oder Blade bereits tief integriert sind

    Wie man benutzerdefinierte TYPO3 Fluid ViewHelpers erstellt (Schritt für Schritt)

    TYPO3 Fluid ermöglicht es Ihnen, die Funktionalität zu erweitern, indem Sie benutzerdefinierte ViewHelpers erstellen, wenn die eingebauten nicht ausreichen.

    Schritt 1. Erstellen Sie einen benutzerdefinierten ViewHelper (PHP-Klasse)

     

    <?php
    // File: /typo3conf/ext/extension_key/Classes/ViewHelpers/MystyleViewHelper.php

    namespace Vendor\Package\ViewHelpers;

    class MystyleViewHelper extends \TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper
    {
    public function initializeArguments()
    {
    $this->registerArgument('text', 'string', 'My custom argument', true);
    }

    public function render()
    {
    return '<div class="my-custom-style">' . $this->arguments['text'] . '</div>';
    }
    }
    ?>

     

    Schritt 2. Verwenden Sie den ViewHelper im Template

     

    {namespace ns=Vendor\Package\ViewHelpers}

    <!-- Tag-based -->
    <ns.mystyle text="Special content" />

    <!-- Inline -->
    {ns:mystyle(text:'Special content')}

    Wann man benutzerdefinierte ViewHelpers vs. Partials verwenden sollte

    • Verwenden Sie ViewHelpers
      • Wenn Logik oder Transformation erforderlich ist
      • Wiederverwendbare Logik über mehrere Vorlagen hinweg
      • Datenformatierung oder -manipulation
    • Verwenden Sie Partials
      • Für wiederverwendbare UI-Komponenten
      • Layout/HTML-Struktur-Wiederverwendung
      • Keine umfangreiche Logik erforderlich

    Best Practices

    • Halten Sie ViewHelpers fokussiert und einzweckorientiert
    • Vermeiden Sie das Einbetten großer HTML-Blöcke in ViewHelpers
    • Verwenden Sie sie für Logik, nicht für Layout
    • Verwenden Sie vorhandene ViewHelpers, bevor Sie neue erstellen

    Namenskonventionen

    • Verwenden Sie klare, beschreibende Namen (z.B. PriceFormatterViewHelper)
    • Folgen Sie der TYPO3 extension Namensraumstruktur
    • Halten Sie die Namensgebung im gesamten Projekt konsistent

    Häufige TYPO3 Fluid-Fehler & Debugging-Leitfaden

    Dies sind häufige Probleme, mit denen Entwickler bei der Arbeit mit TYPO3 Fluid konfrontiert sind.

    Debugging mit

    <f:debug>{variable}</f:debug>

    • Gibt strukturierte Variablendaten aus
    • Nützlich während der Entwicklung und Fehlerbehebung

    Häufige Probleme

    Syntaxfehler

    • Fehlende {} oder falsche ViewHelper-Verwendung
    • Falsche Verschachtelung von Fluid-Tags

    Lösung:
    Überprüfe die Syntax sorgfältig und stelle sicher, dass ViewHelper korrekt geöffnet und geschlossen werden.

    Caching-Probleme

    • Änderungen werden im Frontend nicht angezeigt
    • Alte Ausgabe nach Updates noch sichtbar

    Lösung:
    TYPO3-Systemcache und, falls nötig, Browser-Cache leeren.

    Rendering-Probleme

    • Falsches Template, Layout oder Partial-Pfad
    • Erwartete Daten werden nicht angezeigt

    Lösung:
    Dateipfade überprüfen und sicherstellen, dass Variablen korrekt vom Controller übergeben werden.

    Schlechte Template-Struktur

    • Vermischung von Geschäftslogik in Templates
    • Übermäßiger Einsatz von verschachtelten ViewHelpers

    Lösung:
    Logik in Controller oder benutzerdefinierte ViewHelpers verschieben. Templates auf Präsentation fokussieren.

    Wiederverwendbarkeitsprobleme

    • Keine Verwendung von Partials für wiederverwendbare UI-Komponenten
    • Duplizierter Code in verschiedenen Templates

    Lösung:
    Partials verwenden, um wiederverwendbare und konsistente UI-Elemente zu erstellen.

    Leistungsfehler

    • TYPO3-Caching-Mechanismen ignorieren
    • Übermäßige Rendering-Logik in Templates

    Lösung:
    TYPO3-Caching nutzen und die Template-Struktur für bessere Leistung optimieren.

    TYPO3 Fluid Leistungsoptimierungstipps

    Für skalierbare TYPO3-Projekte ist die Optimierung von Fluid-Templates wichtig.

    Best Practices zur Verbesserung der TYPO3 Fluid Leistung

    • Vermeiden Sie tief verschachtelte ViewHelpers
      • Reduziert den Rendering-Overhead
    • Verwenden Sie Partials effizient
      • Wiederverwenden von Komponenten anstatt Code zu duplizieren
    • Minimieren Sie Logik in Templates
      • Verschieben Sie komplexe Logik in Controller
    • Reduzieren Sie unnötiges Rendering
      • Vermeiden Sie wiederholte Schleifen oder Bedingungen
    • Cachen Sie intelligent
      • Verwenden Sie die TYPO3-Caching-Mechanismen, wo möglich

    Wichtige Erkenntnis

    Effiziente Nutzung von ViewHelpers und eine saubere Template-Struktur wirken sich direkt auf die Leistung aus, insbesondere bei Unternehmensprojekten mit TYPO3.

    TYPO3 Fluid Tipps & Best Practices für Entwickler

    Hier sind praktische Tipps, um effizient mit TYPO3 Fluid in realen Projekten zu arbeiten.

    Verwenden Sie fluid_styled_content als Referenz

    Erkunden Sie EXT:fluid_styled_content im TYPO3-Kern.

    • Verstehen Sie, wie TYPO3 Templates strukturiert
    • Lernen Sie Best Practices für Layouts, Partials und Inhaltsdarstellung
    • Wiederverwenden Sie bewährte Muster anstatt von Grund auf neu zu erstellen

    Wiederverwendung von Partials für Konsistenz

    • Teilen Sie die Benutzeroberfläche in wiederverwendbare Partials auf (Karten, Abschnitte, Kopfzeilen)
    • Vermeiden Sie die Duplizierung von HTML in verschiedenen Vorlagen
    • Hilft, Konsistenz in großen Projekten zu wahren

    Logik aus Vorlagen heraushalten

    • Vermeiden Sie komplexe Bedingungen und Berechnungen in Fluid
    • Verschieben Sie die Logik in Controller oder ViewHelpers
    • Halten Sie Vorlagen auf die Präsentation fokussiert

    Effiziente Nutzung der Inline-Notation

    • Verwenden Sie Inline-Notation für kleine Ausdrücke innerhalb von Attributen
    • Vermeiden Sie die Mischung von tagbasierter Syntax innerhalb von HTML-Attributen

    Verwendung von Debugging während der Entwicklung

    • Verwenden Sie <f:debug>, um Variablen zu überprüfen
    • Hilft, fehlende oder falsche Daten schnell zu identifizieren

    Einheitliche Struktur befolgen

    • Klare Trennung beibehalten: Vorlagen, Layouts, Partials
    • Halten Sie sich an Namenskonventionen im gesamten Projekt
    • Erleichtert die Zusammenarbeit in Teams

    Verwendung von IDE-Snippets

    • Verwenden Sie TYPO3 Fluid-Snippets in VS Code oder PHPStorm
    • Beschleunigt die Entwicklung und reduziert Syntaxfehler

    Wichtige Erkenntnis

    Konzentrieren Sie sich auf klare Struktur, Wiederverwendung und minimale Logik in Vorlagen, um skalierbare TYPO3 Fluid-Implementierungen zu erstellen.

    Fazit

    TYPO3 Fluid ist ein wesentlicher Bestandteil der Arbeit mit TYPO3. Egal, ob Sie Vorlagen erstellen oder Erweiterungen entwickeln, ein solides Verständnis von Fluid hilft Ihnen, saubere, skalierbare und wartbare Frontend-Ausgaben zu erstellen.

    Wenn Sie als TYPO3-Entwickler oder -Integrator arbeiten, ist das Beherrschen von Fluid nicht optional, es gehört zum Job.

    Wenn Sie Fragen haben oder auf Probleme stoßen, während Sie mit TYPO3 Fluid arbeiten, zögern Sie nicht, diese zu teilen. Praktische Herausforderungen sind häufig, und deren Lösung verbessert im Laufe der Zeit Ihren Arbeitsablauf.

    Wenn Sie erkunden, wie KI in TYPO3-Projekten eingesetzt wird, können Sie sich auch das TYPO3 KI-Ökosystem ansehen, um zu verstehen, wie sich Arbeitsabläufe entwickeln.

    TYPO3 Fluid ist eine Template-Engine in TYPO3, die zur Erstellung dynamischer Frontend-Ausgaben verwendet wird. Sie trennt Präsentation von Logik und ermöglicht es Entwicklern, strukturierte Templates ohne umfangreiches PHP zu erstellen.

    Ja. TYPO3 Fluid verwendet eine einfache, XML-basierte Syntax, die leicht zu verstehen ist, insbesondere für Frontend-Entwickler. Grundlegende Konzepte wie Bedingungen und Schleifen sind einfach zu implementieren.

    Es ist kein umfangreiches PHP-Wissen erforderlich, um mit Fluid-Templates zu arbeiten. Grundlegendes PHP ist jedoch nützlich, wenn man benutzerdefinierte ViewHelpers erstellt oder mit TYPO3-Erweiterungen arbeitet.

    • Fluid → Handhabt das Frontend-Rendering (HTML-Templates)
    • TypoScript → Handhabt die Konfiguration und Inhaltseinrichtung in TYPO3

    Beide arbeiten zusammen, dienen aber unterschiedlichen Zwecken.

    TYPO3 Fluid wird in mehreren Bereichen innerhalb von TYPO3 verwendet:

    • Frontend-Template-Entwicklung
    • Erweiterungsentwicklung (Extbase)
    • Backend-Rendering im TYPO3-Kern
    • Erstellung wiederverwendbarer UI-Komponenten

    Ja. TYPO3 Fluid kann mit benutzerdefinierten ViewHelpers erweitert werden, wodurch Entwickler benutzerdefinierte Logik und Funktionalität zu Templates hinzufügen können.

    Your One-Stop Solutions for Custom TYPO3 Development

    • A Decade of TYPO3 Industry Experience
    • 350+ Successful TYPO3 Projects
    • 87% Repeat TYPO3 Customers
    TYPO3 Service
    wolfgang weber

    Post a Comment

    ×

    • user
      Andreas Drechsler 2023-07-14 Beim 3:19 pm
      I've always been intrigued by TYPO3 Fluid, but never knew where to start. Your blog post served as the perfect introduction, taking me from the basics to more advanced techniques. I appreciate how you made the learning process enjoyable and accessible. Great job!