Passed
Push — refactoring/typo3v10 ( c63e6c...2f61e8 )
by Felix
10:47
created

AbstractCommand::flagEntries()   A

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 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 3
cp 0
crap 2
rs 10
c 1
b 0
f 0
1
<?php
2
namespace Aoe\FeatureFlag\Command;
3
4
/***************************************************************
5
 *  Copyright notice
6
 *
7
 *  (c) 2021 AOE GmbH <[email protected]>
8
 *
9
 *  All rights reserved
10
 *
11
 *  This script is part of the TYPO3 project. The TYPO3 project is
12
 *  free software; you can redistribute it and/or modify
13
 *  it under the terms of the GNU General Public License as published by
14
 *  the Free Software Foundation; either version 3 of the License, or
15
 *  (at your option) any later version.
16
 *
17
 *  The GNU General Public License can be found at
18
 *  http://www.gnu.org/copyleft/gpl.html.
19
 *
20
 *  This script is distributed in the hope that it will be useful,
21
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 *  GNU General Public License for more details.
24
 *
25
 *  This copyright notice MUST APPEAR in all copies of the script!
26
 ***************************************************************/
27
28
use Aoe\FeatureFlag\Service\Exception\FeatureNotFoundException;
29
use Aoe\FeatureFlag\Service\FeatureFlagService;
30
use RuntimeException;
31
use Symfony\Component\Console\Command\Command;
32
use TYPO3\CMS\Core\Utility\GeneralUtility;
33
use TYPO3\CMS\Extbase\Object\Container\Exception\UnknownObjectException;
34
use TYPO3\CMS\Extbase\Object\ObjectManager;
35
use TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException;
36
use TYPO3\CMS\Scheduler\Scheduler;
37
38
abstract class AbstractCommand extends Command
39
{
40
    /**
41
     * @var FeatureFlagService
42
     */
43
    protected $featureFlagService;
44
45
    /**
46
     * @var ObjectManager
47
     */
48
    protected $objectManager;
49
50
    /**
51
     * @var Scheduler
52
     */
53
    protected $scheduler;
54
55
    public function __construct(?string $name = null)
56
    {
57
        parent::__construct($name);
58
        $this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
59
        $this->featureFlagService = $this->objectManager->get(FeatureFlagService::class);
60
        $this->scheduler = $this->objectManager->get(Scheduler::class);
61
    }
62
63
    /**
64
     * Enable or disable features. $features can be a comma-separated list of feature names
65
     * @param String $features
66
     * @param $enabled
67
     * @throws FeatureNotFoundException
68
     * @throws IllegalObjectTypeException
69
     * @throws UnknownObjectException
70
     */
71
    protected function setFeatureStatus($features, $enabled)
72
    {
73
        $features = array_map('trim', explode(',', $features));
74
        foreach ($features as $feature) {
75
            echo $feature;
76
            $this->featureFlagService->updateFeatureFlag($feature, $enabled);
77
        }
78
        $this->featureFlagService->flagEntries();
79
    }
80
}
81