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'] ?? ''; // ... } }

 

Source: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/RequestLifeCycle/Typo3Request.html#typo3-request-object

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 [];
}
}

}

 

Source: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/AccessingSiteConfiguration.html