PHP-Skript einbinden

Mit TypoScript lässt sich ein PHP-Skript in eine TYPO3-Webseite einbinden. Dieser Artikel beschreibt die Varianten bis TYPO3 7.4.

In TYPO3 lassen sich PHP-Skripte einbinden, die in einem Unterordner der TYPO3-Installation abgelegt sind. In den folgenden Beispielen wird die Datei  /fileadmin/php/skript.php eingebunden. Grundsätzlich wird zur Einbindung immer TypoScript verwendet. Die Befehle haben sich in den TYPO3-Versionen 6.0 und 7.4 geändert. In diesem Artikel werden deswegen die drei Varianten vorgestellt. PHP-Skripte werden oft für dynamsische Ausgaben verwendet. Deswegen sollten der Cache auf Seiten mit PHP-Inhalten deaktiviert werden.

TYPO3 Version 4.7 und kleiner

Um ein PHP-Skript aus einer Datei in TYPO3 einbinden zu können, steht bis Version 4.7 der Objekttyp PHP_SCRIPT zur Verfügung. In folgendem Beispiel wird der Variablen marker der Dateipfad zur der PHP-Datei zugewiesen. Die Variable marker lässt sich dann in das HMTL-Template einbinden.

1
2
lib.marker = PHP_SCRIPT
lib.marker.file = fileadmin/php/skript.php

Mit einem Doppelklick kann der gesamte Code markiert werden.

Im PHP-Skript muss die Ausgabe in einer Variable namens $content gespeichert werden. In nachfolgenden Beispiel-Code wird das durch Output-Buffering erledigt.

1
2
3
4
5
6
ob_start();

echo 'Diese Ausgabe wurde durch PHP erzeugt.';

$content = ob_get_contents();
ob_end_clean();

Mit einem Doppelklick kann der gesamte Code markiert werden.

TYPO3 Versionen 6.0 bis 7.3

Der Objekttyp PHP_SCRIPT wurde in der TYPO3-Version 4.7 als veraltet erklärt und in Version 6.0 entfernt. Ab der TYPO3-Version 6.0 wird stattdessen der Objekttyp USER angeboten. Die Funktionsweise ist sehr ähnlich. Statt einem linearen PHP-Skript, ist nun eine Klasse mit einer Methode für die Ausgabe erforderlich.

1
2
3
4
includeLibs.user_klasse = fileadmin/php/user_klasse.php

lib.marker = USER
lib.marker.userFunc = user_klasse->ausgabe

Mit einem Doppelklick kann der gesamte Code markiert werden.

Mit includeLibs wird der Pfad zur Klasse user_klasse definiert. Diese befindet sich in diesem Beispiel im Ordner /fileadmin/templates/php. Die Klasse user_klasse stellt Methoden bereit, die den auszuführenden PHP-Code enthalten. Der Klassenname muss immer in der Form user_[klassenname] vorliegen.

1
2
3
4
5
6
7
class user_klasse
{
function ausgabe()
{
return 'Diese Ausgabe wurde durch PHP erzeugt.';
}
}

Mit einem Doppelklick kann der gesamte Code markiert werden.

TYPO3 Version 7.4 und größer

In TYPO3 7.4 wurde die Methode, eigene PHP-Dateien via includeLibs einzubinden, angepasst.

1
2
3
4
lib.marker = USER_INT

lib.marker.includeLibs = fileadmin/php/user_klasse.php
lib.marker.userFunc = user_klasse->ausgabe

Mit einem Doppelklick kann der gesamte Code markiert werden.

Über den Autor

Mein Name ist . Mit dieser Website möchte ich meine Erfahrungen an andere Webentwickler weitergeben und schnelle Lösungen für die alltäglichen Probleme anbieten. Das Erstellen von Artikeln ist aber auch zeitlich sehr aufwändig, weswegen ich über jede Unterstützung via Patreon dankbar bin.