Configuration::getTables()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 1
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Aoe\FeatureFlag\System\Typo3;
4
5
/***************************************************************
6
 *  Copyright notice
7
 *
8
 *  (c) 2024 AOE GmbH <[email protected]>
9
 *
10
 *  All rights reserved
11
 *
12
 *  This script is part of the TYPO3 project. The TYPO3 project is
13
 *  free software; you can redistribute it and/or modify
14
 *  it under the terms of the GNU General Public License as published by
15
 *  the Free Software Foundation; either version 3 of the License, or
16
 *  (at your option) any later version.
17
 *
18
 *  The GNU General Public License can be found at
19
 *  http://www.gnu.org/copyleft/gpl.html.
20
 *
21
 *  This script is distributed in the hope that it will be useful,
22
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
 *  GNU General Public License for more details.
25
 *
26
 *  This copyright notice MUST APPEAR in all copies of the script!
27
 ***************************************************************/
28
29
use InvalidArgumentException;
30
use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;
31
use TYPO3\CMS\Core\SingletonInterface;
32
33
class Configuration implements SingletonInterface
34
{
35
    /**
36
     * @var string
37
     */
38
    public const CONF_TABLES = 'tables';
39
40
    private array $configuration = [];
41
42
    public function __construct(ExtensionConfiguration $extensionConfiguration)
43
    {
44
        $configuration = $extensionConfiguration->get('feature_flag');
45
        if (is_array($configuration)) {
46
            $this->configuration = $configuration;
47
        }
48
    }
49
50
    public function getTables(): array
51
    {
52
        return explode(',', (string) $this->get(self::CONF_TABLES));
53
    }
54
55
    /**
56
     * @return mixed
57
     */
58
    public function get(string $key)
59
    {
60
        if (array_key_exists($key, $this->configuration)) {
61
            return $this->configuration[$key];
62
        }
63
64
        throw new InvalidArgumentException('Configuration key "' . $key . '" does not exist.', 1384161387);
65
    }
66
}
67