CrudsExtension::load()   B
last analyzed

Complexity

Conditions 5
Paths 9

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 5.009

Importance

Changes 0
Metric Value
dl 0
loc 22
ccs 13
cts 14
cp 0.9286
rs 8.6737
c 0
b 0
f 0
cc 5
eloc 13
nc 9
nop 2
crap 5.009
1
<?php
2
3
namespace ScayTrase\Api\Cruds\DependencyInjection;
4
5
use Symfony\Component\Config\FileLocator;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Extension\Extension;
8
use Symfony\Component\DependencyInjection\Loader;
9
10
final class CrudsExtension extends Extension
11
{
12
    /** {@inheritdoc} */
13 30
    public function load(array $configs, ContainerBuilder $container)
14
    {
15 30
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
16 30
        $loader->load('cruds.yml');
17
18 30
        $config = $this->processConfiguration($this->getConfiguration([], $container), $configs);
0 ignored issues
show
Documentation introduced by
$this->getConfiguration(array(), $container) is of type object|null, but the function expects a object<Symfony\Component...ConfigurationInterface>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
19
20 30
        $configurator = new CrudsEntitiesConfigurator($container);
21 30
        $container->addObjectResource($configurator);
22 30
        foreach ($config['entities'] as $name => $entityConfig) {
23 30
            $entityConfig['prefix'] = $entityConfig['prefix'] ?: '/' . $name;
24 30
            $configurator->processEntityConfiguration($name, $entityConfig);
25
        }
26
27 30
        foreach ($config['listeners'] as $listener => $enabled) {
28 30
            if ($enabled) {
29 30
                continue;
30
            }
31
32
            $container->removeDefinition('cruds.api.listener.' . $listener);
33
        }
34 30
    }
35
}
36