Site Settings in Extensions
In Extension-Controller
You can use the request object.
use Psr\Http\Message\ResponseInterface; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; final class MyController extends ActionController { // ... public function myAction(): ResponseInterface { // ... $site = $this->getRequest()?->getAttribute('site');
$siteSettings = $site?->getSettings() ?? [];
$mySetting = $siteSettings['mysetting'] ?? ''; // ... } }
Site Settings in Helper-Classes
Use sitefinder-class:
use \TYPO3\CMS\Core\Site\SiteFinder;
use TYPO3\CMS\Core\Exception\SiteNotFoundException;
class myService {
public function __construct(private readonly Sitefinder $sitefinder) {}
private function getSettings(int $rootPageId): array {
try {
$site = $this->sitefinder->getSiteByPageId($rootPageId);
$siteSettings = $site->getSettings();
$mySettings['mySettingOne'] = $siteSettings->get('mySettingOne') ?? [];
$mySettings['mySettingTwo'] = $siteSettings->get('mySettingTwo') ?? [];
return $mySettings;
}
catch(SiteNotFoundException) {
return [];
}
}
}