Umgebungsvariable TYPO3_CONTEXT nutzen

Mit der momentan aktuellen TYPO3 Version 6.2 LTS hat ein lange erwartetes Feature Einzug in den Programmcode gehalten: TYPO3 Applikation Contexts. Über die Umgebungsvariable TYPO3_CONTEXT lässt sich einfach bestimmen, in welcher Umgebung die aufgerufene Seite momentan läuft. Befindet sich die Seite noch im Entwicklungsstadium oder ist sie Live? In der Development-Umgebung möchte man gerne das Caching unterbinden (config.no_cache = 1) und ggf. auch Debug-Meldungen ausgeben – Fehlermeldungen, deaktiviertes Caching und dergleichen haben im Produktivbetrieb aber natürlich nichts zu suchen. Genau hier kommt der TYPO3 Kontext zum tragen. So viel zur Theorie.

In der Praxis sieht es dann schon etwas komplizierter aus. Leider ist das Feature der nur sehr spärlich bis gar nicht außerhalb des Quellcodes dokumentiert. Auch über die Allwissende Müllhalde lässt sich nicht viel finden.

Konfiguration

Die Grundvoraussetzung zur Verwendung ist, dass zu allererst die Umgebungsvariable „TYPO3_CONTEXT“ gesetzt ist. TYPO3 selbst bietet hierzu über die .htaccess-Datei eine relativ komfortable Möglichkeit. Der ApplicationContext wird einfach domainabhängig gesetzt. So ist der Kontext auf der Subdomain dev.example.com Development. Wird die Live-Seite unter www.example.com aufgerufen, befinden wir uns im Produktiv-Kontext.

So einfach dieser Vorschlag klingt, so wenig ist es bei vielen Manged-Hosting-Anbietern verwendbar. Hier lässt sich keine Umgebungsvariable via .htaccess setzen.

Hier bietet sich über die PHP-Konfigurationsdatei php.ini allerdings die Möglichkeit ein „auto_prepend_file“ einzufügen. Hierüber kann via PHP (putenv(‚TYPO3_CONTEXT=Development‘);)
dann ebenfalls domainabhängig die Umgebungsvariable gesetzt werden.

Abfrage via TypoScript

Der ApplicationContext lässt sich via TypoScript Condition abfragen:

[applicationContext = Development]
config.no_cache = 1
config.admPanel = 1
[end]

Wenn sich die Seite jetzt also im Dev-Kontext befindet wird das Caching deaktiviert und das Admin-Panel wird im Frontend angezeigt.

Abfrage via Extension oder AdditionalConfiguration.php

Die Klasse GeneralUtility stellt einige Methoden zur Ermittlung des TYPO3 Application Context bereit. Der Kontext kann über die Funktionen

  • getApplicationContext()->isDevelopment()
  • getApplicationContext()->isTesting()
  • getApplicationContext()->isProduction()

abgefragt werden. Hierüber ist es in der AdditionalConfiguration-Datei möglich andere Datenbank-Zugangsdaten und dergleichen anzugeben.

Schreibe einen Kommentar