getContainerExtension()   A
last analyzed

Complexity

Conditions 5
Paths 7

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 17
rs 9.6111
cc 5
nc 7
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MonsieurBiz\SyliusSalesReportsPlugin;
6
7
use Sylius\Bundle\CoreBundle\Application\SyliusPluginTrait;
8
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
9
use Symfony\Component\HttpKernel\Bundle\Bundle;
10
11
final class MonsieurBizSyliusSalesReportsPlugin extends Bundle
12
{
13
    use SyliusPluginTrait;
14
15
    /**
16
     * Returns the plugin's container extension.
17
     *
18
     * @return ExtensionInterface|null The container extension
19
     *
20
     * @throws \LogicException
21
     */
22
    public function getContainerExtension(): ?ExtensionInterface
23
    {
24
        if (null === $this->containerExtension) {
25
            $extension = $this->createContainerExtension();
26
27
            if (null !== $extension) {
28
                if (!$extension instanceof ExtensionInterface) {
0 ignored issues
show
introduced by
$extension is always a sub-type of Symfony\Component\Depend...sion\ExtensionInterface.
Loading history...
29
                    throw new \LogicException(sprintf('Extension %s must implement %s.', get_class($extension), ExtensionInterface::class));
30
                }
31
                $this->containerExtension = $extension;
32
            } else {
33
                $this->containerExtension = false;
34
            }
35
        }
36
        return $this->containerExtension instanceof ExtensionInterface
37
            ? $this->containerExtension
38
            : null;
39
    }
40
}
41