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.