Completed
Push — master ( 289dee...aec877 )
by Alexandre
03:35
created

Server::__construct()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 24
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 24
c 0
b 0
f 0
ccs 0
cts 6
cp 0
rs 8.9713
cc 3
eloc 9
nc 4
nop 9
crap 12

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Alexandre
5
 * Date: 23/01/2018
6
 * Time: 00:10
7
 */
8
9
namespace OAuth2\OpenID;
10
11
12
use OAuth2\ClientAuthentication\Guard;
13
use OAuth2\OpenID\Endpoints\AuthorizationEndpoint;
14
use OAuth2\Repositories\ResponseModeRepository;
15
use OAuth2\OpenID\Repositories\ResponseTypeRepository;
16
use OAuth2\Providers\ResourceOwnerProviderInterface;
17
use OAuth2\Repositories\ClientAuthenticatorRepository;
18
use OAuth2\OpenID\Repositories\ConfigurationRepository;
19
use OAuth2\Repositories\GrantTypeRepository;
20
//use OAuth2\Repositories\ResponseTypeRepository;
21
use OAuth2\OpenID\Repositories\StorageRepository;
22
use OAuth2\ScopePolicy\ScopePolicyManager;
23
24
class Server extends \OAuth2\Server
25
{
26
    /**
27
     * @var AuthorizationEndpoint
28
     */
29
    protected $authorizationEndpoint;
30
    /**
31
     * @var ResponseTypeRepository
32
     */
33
    protected $responseTypeRepository;
34
35
    /**
36
     * Server constructor.
37
     * @param ResourceOwnerProviderInterface $resourceOwnerProvider
38
     * @param null|StorageRepository $storageRepository
39
     * @param null|ConfigurationRepository $configurationRepository
40
     * @param null|ResponseTypeRepository $responseTypeRepository
41
     * @param null|GrantTypeRepository $grantTypeRepository
42
     * @param null|ClientAuthenticatorRepository $clientAuthenticatorRepository
43
     * @param null|Guard $guard
44
     * @param null|ScopePolicyManager $scopePolicyManager
45
     * @param null|ResponseModeRepository $responseModeRepository
46
     * @throws \Exception
47
     */
48
    public function __construct(ResourceOwnerProviderInterface $resourceOwnerProvider,
49
                                StorageRepository $storageRepository,
50
                                ?ConfigurationRepository $configurationRepository = null,
51
                                ?ResponseTypeRepository $responseTypeRepository = null,
52
                                ?GrantTypeRepository $grantTypeRepository = null,
53
                                ?ClientAuthenticatorRepository $clientAuthenticatorRepository = null,
54
                                ?Guard $guard = null,
55
                                ?ScopePolicyManager $scopePolicyManager = null,
56
                                ?ResponseModeRepository $responseModeRepository = null)
57
    {
58
        if (is_null($configurationRepository)) {
59
            $configurationRepository = new ConfigurationRepository();
60
        }
61
62
        if (is_null($responseTypeRepository)) {
63
            $responseTypeRepository = new ResponseTypeRepository(
64
                ResponseTypeRepository::getDefaultResponseTypes($configurationRepository, $storageRepository));
65
        }
66
67
        parent::__construct($resourceOwnerProvider, $storageRepository, $configurationRepository,
68
            $responseTypeRepository, $grantTypeRepository, $clientAuthenticatorRepository, $guard,
69
            $scopePolicyManager, $responseModeRepository);
70
71
        $this->authorizationEndpoint = new AuthorizationEndpoint($this);
72
    }
73
74
}