Environment 

\nn\t3::Environment() 

Alles, was man über die Umgebung der Anwendung wissen muss. Von Sprach-ID des Users, der baseUrl bis zu der Frage, welche Extensions am Start sind.

Overview of Methods 

\nn\t3::Environment()->extLoaded($extName = ''); 

Prüfen, ob Extension geladen ist.

\nn\t3::Environment()->extLoaded('news');
Copied!

| ➜ Go to source code of Environment::extLoaded()

\nn\t3::Environment()->extPath($extName = ''); 

absoluten Pfad zu einer Extension holen z.B. /var/www/website/ext/nnsite/

\nn\t3::Environment()->extPath('extname');
Copied!

| @return string

| ➜ Go to source code of Environment::extPath()

\nn\t3::Environment()->extRelPath($extName = ''); 

relativen Pfad (vom aktuellen Script aus) zu einer Extension holen z.B. ../typo3conf/ext/nnsite/

\nn\t3::Environment()->extRelPath('extname');
Copied!

| @return string

| ➜ Go to source code of Environment::extRelPath()

\nn\t3::Environment()->getBaseURL(); 

Gibt die baseUrl (config.baseURL) zurück, inkl. http(s) Protokoll z.B. https://www.webseite.de/

\nn\t3::Environment()->getBaseURL();
Copied!

| @return string

| ➜ Go to source code of Environment::getBaseURL()

\nn\t3::Environment()->getCookieDomain($loginType = 'FE'); 

Die Cookie-Domain holen z.B. www.webseite.de

\nn\t3::Environment()->getCookieDomain()
Copied!

| @return string

| ➜ Go to source code of Environment::getCookieDomain()

\nn\t3::Environment()->getCountries($lang = 'de', $key = 'cn_iso_2'); 

Alle im System verfügbaren Ländern holen

\nn\t3::Environment()->getCountries();
Copied!

| @return array

| ➜ Go to source code of Environment::getCountries()

\nn\t3::Environment()->getCountryByIsocode($cn_iso_2 = NULL, $field = 'cn_iso_2'); 

Ein Land aus der Tabelle static_countries anhand seines Ländercodes (z.B. DE) holen

\nn\t3::Environment()->getCountryByIsocode( 'DE' );
\nn\t3::Environment()->getCountryByIsocode( 'DEU', 'cn_iso_3' );
Copied!

| @return array

| ➜ Go to source code of Environment::getCountryByIsocode()

\nn\t3::Environment()->getDefaultLanguage($returnKey = 'typo3Language'); 

Gibt die Standard-Sprache (Default Language) zurück. Bei TYPO3 ist das immer die Sprache mit der ID 0. Die Sprachen müssen in der YAML site configuration festgelegt sein.

// 'de'
\nn\t3::Environment()->getDefaultLanguage();

// 'de-DE'
\nn\t3::Environment()->getDefaultLanguage('hreflang');

// ['title'=>'German', 'typo3Language'=>'de', ...]
\nn\t3::Environment()->getDefaultLanguage( true );
Copied!
@param string|boolean $returnKey
@return string|array

| ➜ Go to source code of Environment::getDefaultLanguage()

\nn\t3::Environment()->getDomain(); 

Die Domain holen z.B. www.webseite.de

\nn\t3::Environment()->getDomain();
Copied!

| @return string

| ➜ Go to source code of Environment::getDomain()

\nn\t3::Environment()->getExtConf($ext = 'nnhelpers', $param = ''); 

Configuration aus ext_conf_template.txt holen (Backend, Extension Configuration)

\nn\t3::Environment()->getExtConf('nnhelpers', 'varname');
Copied!

Existiert auch als ViewHelper:

{nnt3:ts.extConf(path:'nnhelper')}
{nnt3:ts.extConf(path:'nnhelper.varname')}
{nnt3:ts.extConf(path:'nnhelper', key:'varname')}
Copied!

| @return mixed

| ➜ Go to source code of Environment::getExtConf()

\nn\t3::Environment()->getLanguage(); 

Die aktuelle Sprache (als Zahl) des Frontends holen.

\nn\t3::Environment()->getLanguage();
Copied!

| @return int

| ➜ Go to source code of Environment::getLanguage()

\nn\t3::Environment()->getLanguageFallbackChain($langUid = true); 

Gibt eine Liste der Sprachen zurück, die verwendet werden sollen, falls z.B. eine Seite oder ein Element nicht in der gewünschten Sprache existiert.

Wichtig: Die Fallback-Chain enthält an erster Stelle die aktuelle bzw. in $langUid übergebene Sprache.

// Einstellungen für aktuelle Sprache verwenden (s. Site-Config YAML)
\nn\t3::Environment()->getLanguageFallbackChain();   // --> z.B. [0] oder [1,0]

// Einstellungen für eine bestimmte Sprache holen
\nn\t3::Environment()->getLanguageFallbackChain( 1 );
// --> [1,0] - falls Fallback in Site-Config definiert wurde und der fallbackMode auf "fallback" steht
// --> [1] - falls es keinen Fallback gibt oder der fallbackMode auf "strict" steht
Copied!
@param string|boolean $returnKey
@return string|array

| ➜ Go to source code of Environment::getLanguageFallbackChain()

\nn\t3::Environment()->getLanguageKey(); 

Die aktuelle Sprache (als Kürzel wie "de") im Frontend holen

\nn\t3::Environment()->getLanguageKey();
Copied!

| @return string

| ➜ Go to source code of Environment::getLanguageKey()

\nn\t3::Environment()->getLanguages($key = 'languageId', $value = NULL); 

Gibt eine Liste aller definierten Sprachen zurück. Die Sprachen müssen in der YAML site configuration festgelegt sein.

// [['title'=>'German', 'iso-639-1'=>'de', 'typo3Language'=>'de', ....], ['title'=>'English', 'typo3Language'=>'en', ...]]
\nn\t3::Environment()->getLanguages();

// ['de'=>['title'=>'German', 'typo3Language'=>'de'], 'en'=>['title'=>'English', 'typo3Language'=>'en', ...]]
\nn\t3::Environment()->getLanguages('iso-639-1');

// ['de'=>0, 'en'=>1]
\nn\t3::Environment()->getLanguages('iso-639-1', 'languageId');

// [0=>'de', 1=>'en']
\nn\t3::Environment()->getLanguages('languageId', 'iso-639-1');
Copied!

Es gibt auch Helper zum Konvertieren von Sprach-IDs in Sprach-Kürzel und umgekehrt:

// --> 0
\nn\t3::Convert('de')->toLanguageId();

// --> 'de'
\nn\t3::Convert(0)->toLanguage();
Copied!
@param string $key
@param string $value
@return string|array

| ➜ Go to source code of Environment::getLanguages()

\nn\t3::Environment()->getLocalConf($path = ''); 

Konfiguration aus der LocalConfiguration.php holen

\nn\t3::Environment()->getLocalConf('FE.cookieName');
Copied!

| @return string

| ➜ Go to source code of Environment::getLocalConf()

\nn\t3::Environment()->getPathSite(); 

Absoluten Pfad zum Typo3-Root-Verzeichnis holen. z.B. /var/www/website/

\nn\t3::Environment()->getPathSite()
Copied!

früher: PATH_site

| ➜ Go to source code of Environment::getPathSite()

\nn\t3::Environment()->getPostMaxSize(); 

Maximale Upload-Größe für Dateien aus dem Frontend zurückgeben. Diese Angabe ist der Wert, der in der php.ini festgelegt wurde und ggf. über die .htaccess überschrieben wurde.

\nn\t3::Environment()->getPostMaxSize();  // z.B. '1048576' bei 1MB
Copied!

| @return integer

| ➜ Go to source code of Environment::getPostMaxSize()

\nn\t3::Environment()->getPsr4Prefixes(); 

Liste der PSR4 Prefixes zurückgeben.

Das ist ein Array mit allen Ordnern, die beim autoloading / Bootstrap von TYPO3 nach Klassen geparsed werden müssen. In einer TYPO3 Extension ist das per default der Ordern Classes. Die Liste wird von Composer/TYPO3 generiert.

Zurückgegeben wird ein array. Key ist Vendor\Namespace\, Wert ist ein Array mit Pfaden zu den Ordnern, die rekursiv nach Klassen durchsucht werden. Es spielt dabei keine Rolle, ob TYPO3 im composer mode läuft oder nicht.

\nn\t3::Environment()->getPsr4Prefixes();
Copied!

Beispiel für Rückgabe:

[
    'Nng\Nnhelpers\' => ['/pfad/zu/composer/../../public/typo3conf/ext/nnhelpers/Classes', ...],
    'Nng\Nnrestapi\' => ['/pfad/zu/composer/../../public/typo3conf/ext/nnrestapi/Classes', ...]
]
Copied!

| @return array

| ➜ Go to source code of Environment::getPsr4Prefixes()

\nn\t3::Environment()->getRelPathSite(); 

Relativen Pfad zum Typo3-Root-Verzeichnis holen. z.B. ../

\nn\t3::Environment()->getRelPathSite()
Copied!

| @return string

| ➜ Go to source code of Environment::getRelPathSite()

\nn\t3::Environment()->getRequest(); 

Holt den aktuellen Request. Workaround für Sonderfälle – und den Fall, dass das Core-Team diese Option nicht in Zukunft selbst implementiert.

$request = \nn\t3::Environment()->getRequest();
Copied!

| @return \TYPO3\CMS\Core\Http\ServerRequest

| ➜ Go to source code of Environment::getRequest()

\nn\t3::Environment()->getSite($request = NULL); 

Das aktuelle Site Object holen. Über dieses Object kann z.B. ab TYPO3 9 auf die Konfiguration aus der site YAML-Datei zugegriffen werden.

Im Kontext einer MiddleWare ist evtl. die site noch nicht geparsed / geladen. In diesem Fall kann der $request aus der MiddleWare übergeben werden, um die Site zu ermitteln.

Siehe auch \nn\t3::Settings()->getSiteConfig(), um die site-Konfiguration auszulesen.

\nn\t3::Environment()->getSite();
\nn\t3::Environment()->getSite( $request );

\nn\t3::Environment()->getSite()->getConfiguration();
\nn\t3::Environment()->getSite()->getIdentifier();
Copied!

| @return \TYPO3\CMS\Core\Site\Entity\Site

| ➜ Go to source code of Environment::getSite()

\nn\t3::Environment()->getSyntheticFrontendRequest($pageUid = NULL); 

Generiert einen virtuellen Frontend Request, der in jedem Context verwendet werden kann. Initialisiert auch das Frontend TypoScript-Object und alle relevanten Objekte.

$request = \nn\t3::Environment()->getSyntheticFrontendRequest();
Copied!
@param int $pageUid
@return \TYPO3\CMS\Core\Http\ServerRequest

| ➜ Go to source code of Environment::getSyntheticFrontendRequest()

\nn\t3::Environment()->getVarPath(); 

Absoluten Pfad zu dem /var-Verzeichnis von Typo3 holen.

Dieses Verzeichnis speichert temporäre Cache-Dateien. Je nach Version von Typo3 und Installationstyp (Composer oder Non-Composer mode) ist dieses Verzeichnis an unterschiedlichen Orten zu finden.

// /full/path/to/typo3temp/var/
$path = \nn\t3::Environment()->getVarPath();
Copied!

| ➜ Go to source code of Environment::getVarPath()

\nn\t3::Environment()->isBackend(); 

Prüfen, ob wir uns im Backend-Context befinden

\nn\t3::Environment()->isBackend();
Copied!

| @return bool

| ➜ Go to source code of Environment::isBackend()

\nn\t3::Environment()->isFrontend(); 

Prüfen, ob wir uns im Frontend-Context befinden

\nn\t3::Environment()->isFrontend();
Copied!

| @return bool

| ➜ Go to source code of Environment::isFrontend()

\nn\t3::Environment()->isHttps(); 

Gibt true zurück, wenn die Seite über HTTPS aufgerufen wird.

$isHttps = \nn\t3::Environment()->isHttps();
Copied!

| @return boolean

| ➜ Go to source code of Environment::isHttps()

\nn\t3::Environment()->isLocalhost(); 

Prüft, ob Installation auf lokalem Server läuft

\nn\t3::Environment()->isLocalhost()
Copied!

| @return boolean

| ➜ Go to source code of Environment::isLocalhost()

\nn\t3::Environment()->setLanguage($languageId = 0); 

Die aktuelle Sprache setzen.

Hilfreich, wenn wir die Sprache in einem Context brauchen, wo er nicht initialisiert wurde, z.B. in einer MiddleWare oder CLI.

\nn\t3::Environment()->setLanguage(0);
Copied!
@param int $languageId
@return self

| ➜ Go to source code of Environment::setLanguage()

\nn\t3::Environment()->setRequest($request); 

Setzt den aktuellen Request. Wird in der RequestParser-MiddleWare gesetzt

\nn\t3::Environment()->setRequest( $request );
Copied!
@param \TYPO3\CMS\Core\Http\ServerRequest
@return self

| ➜ Go to source code of Environment::setRequest()

\nn\t3::Environment()->t3Version(); 

Die Version von Typo3 holen, als Ganzzahl, z.b "8" Alias zu \nn\t3::t3Version()

\nn\t3::Environment()->t3Version();

if (\nn\t3::t3Version() >= 8) {
    // nur für >= Typo3 8 LTS
}
Copied!

| @return int

| ➜ Go to source code of Environment::t3Version()

Methods