Environment::getSite()
\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
Source Code
public function getSite ( $request = null )
{
if (!$request && !\TYPO3\CMS\Core\Core\Environment::isCli()) {
$request = $this->getRequest();
}
// no request set? try getting site by the current pid
if (!$request) {
try {
$pageUid = \nn\t3::Page()->getPid();
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($pageUid);
return $site;
} catch ( \Exception $e ) {
return null;
}
};
// try getting site by baseURL
$site = $request->getAttribute('site');
if (!$site || is_a($site, \TYPO3\CMS\Core\Site\Entity\NullSite::class)) {
$matcher = GeneralUtility::makeInstance( SiteMatcher::class );
$routeResult = $matcher->matchRequest($request);
$site = $routeResult->getSite();
}
// last resort: Just get the first site
if (!$site || is_a($site, \TYPO3\CMS\Core\Site\Entity\NullSite::class)) {
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
$sites = $siteFinder->getAllSites();
$site = reset($sites) ?: null;
}
return $site;
}
Copied!