Completed
Pull Request — master (#4224)
by Craig
04:46
created

InstallerController   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 21
c 0
b 0
f 0
dl 0
loc 61
rs 10
wmc 9

2 Methods

Rating   Name   Duplication   Size   Complexity  
B installAction() 0 20 8
A __construct() 0 12 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Zikula package.
7
 *
8
 * Copyright Zikula Foundation - https://ziku.la/
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Zikula\Bundle\CoreInstallerBundle\Controller;
15
16
use Symfony\Component\HttpFoundation\Request;
17
use Symfony\Component\HttpFoundation\Response;
18
use Symfony\Component\Routing\RouterInterface;
19
use Zikula\Bundle\CoreInstallerBundle\Helper\ControllerHelper;
20
use Zikula\Bundle\CoreInstallerBundle\Helper\WizardHelper;
21
22
class InstallerController
23
{
24
    /**
25
     * @var RouterInterface
26
     */
27
    private $router;
28
29
    /**
30
     * @var WizardHelper
31
     */
32
    private $wizardHelper;
33
34
    /**
35
     * @var ControllerHelper
36
     */
37
    private $controllerHelper;
38
39
    /**
40
     * @var string
41
     */
42
    private $locale;
43
44
    /**
45
     * @var bool
46
     */
47
    private $installed;
48
49
    public function __construct(
50
        RouterInterface $router,
51
        WizardHelper $wizardHelper,
52
        ControllerHelper $controllerHelper,
53
        string $locale,
54
        string $installed
55
    ) {
56
        $this->router = $router;
57
        $this->wizardHelper = $wizardHelper;
58
        $this->controllerHelper = $controllerHelper;
59
        $this->locale = $locale;
60
        $this->installed = '0.0.0' !== $installed;
61
    }
62
63
    public function installAction(Request $request, string $stage): Response
64
    {
65
        // already installed?
66
        if ('complete' !== $stage && $this->installed) {
67
            $stage = 'installed';
68
        }
69
70
        // not installed but requesting installed stage?
71
        if ('installed' === $stage && !$this->installed) {
72
            $stage = 'notinstalled';
73
        }
74
75
        $request->setLocale($this->locale);
76
        $session = $request->hasSession() ? $request->getSession() : null;
77
        $iniWarnings = $this->controllerHelper->initPhp();
78
        if (null !== $session && 0 < count($iniWarnings)) {
79
            $session->getFlashBag()->add('warning', implode('<hr />', $iniWarnings));
80
        }
81
82
        return $this->wizardHelper->processWizard($request, $stage, 'install');
83
    }
84
}
85