SiteConfigurationService::getConfiguration()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 16
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 13
nc 2
nop 1
dl 0
loc 16
rs 9.8333
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lochmueller\LanguageDetection\Service;
6
7
use Lochmueller\LanguageDetection\Domain\Model\Dto\SiteConfiguration;
8
use TYPO3\CMS\Core\Site\Entity\Site;
9
use TYPO3\CMS\Core\Site\Entity\SiteInterface;
10
11
class SiteConfigurationService
12
{
13
    public function getConfiguration(SiteInterface $site): SiteConfiguration
14
    {
15
        $config = $site instanceof Site ? $site->getConfiguration() : [];
16
17
        return new SiteConfiguration(
18
            !\array_key_exists('enableLanguageDetection', $config) || (bool)$config['enableLanguageDetection'],
19
            (bool)($config['disableRedirectWithBackendSession'] ?? false),
20
            (string)($config['addIpLocationToBrowserLanguage'] ?? ''),
21
            (bool)($config['allowAllPaths'] ?? false),
22
            (int)($config['redirectHttpStatusCode'] ?? 307),
23
            (string)($config['forwardRedirectParameters'] ?? ''),
24
            (int)($config['fallbackDetectionLanguage'] ?? 0),
25
            (string)($config['languageDetectionMaxMindDatabasePath'] ?? ''),
26
            (int)($config['languageDetectionMaxMindAccountId'] ?? ''),
27
            (string)($config['languageDetectionMaxMindLicenseKey'] ?? ''),
28
            (string)($config['languageDetectionMaxMindMode'] ?? 'After'),
29
        );
30
    }
31
}
32