SiteConfigurationService   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 18
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A getConfiguration() 0 16 3
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