Passed
Push — master ( 7ec869...8ef4a4 )
by Damien
01:57
created

GoogleMapsFactory::getProvider()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 2
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 5
rs 10
1
<?php
2
3
namespace DH\NavigationBundle\Provider\GoogleMaps;
4
5
use DH\NavigationBundle\Provider\AbstractFactory;
6
use DH\NavigationBundle\Provider\ProviderInterface;
7
use GuzzleHttp\Client;
8
use Symfony\Component\OptionsResolver\OptionsResolver;
9
10
final class GoogleMapsFactory extends AbstractFactory
11
{
12
    protected function getProvider(array $config): ProviderInterface
13
    {
14
        $client = $config['http_client'] ?: new Client();
15
16
        return new GoogleMaps($client, $config['api_key'], $config['region']);
0 ignored issues
show
Unused Code introduced by
The call to DH\NavigationBundle\Prov...ogleMaps::__construct() has too many arguments starting with $config['region']. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

16
        return /** @scrutinizer ignore-call */ new GoogleMaps($client, $config['api_key'], $config['region']);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
17
    }
18
19
    protected static function configureOptionResolver(OptionsResolver $resolver): void
20
    {
21
        $resolver->setDefaults([
22
            'http_client' => null,
23
            'region' => null,
24
            'api_key' => null,
25
        ]);
26
27
        $resolver->setAllowedTypes('http_client', ['object', 'null']);
28
        $resolver->setAllowedTypes('api_key', ['string', 'null']);
29
        $resolver->setAllowedTypes('region', ['string', 'null']);
30
        $resolver->setRequired(['api_key']);
31
    }
32
}
33