CommonPsr17ClassesStrategy   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 0
dl 0
loc 89
ccs 0
cts 10
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getCandidates() 0 11 3
1
<?php
2
3
namespace Http\Discovery\Strategy;
4
5
use Psr\Http\Message\RequestFactoryInterface;
6
use Psr\Http\Message\ResponseFactoryInterface;
7
use Psr\Http\Message\ServerRequestFactoryInterface;
8
use Psr\Http\Message\StreamFactoryInterface;
9
use Psr\Http\Message\UploadedFileFactoryInterface;
10
use Psr\Http\Message\UriFactoryInterface;
11
12
/**
13
 * @internal
14
 *
15
 * @author Tobias Nyholm <[email protected]>
16
 */
17
final class CommonPsr17ClassesStrategy implements DiscoveryStrategy
18
{
19
    /**
20
     * @var array
21
     */
22
    private static $classes = [
23
        RequestFactoryInterface::class => [
24
            'Phalcon\Http\Message\RequestFactory',
25
            'Nyholm\Psr7\Factory\Psr17Factory',
26
            'Zend\Diactoros\RequestFactory',
27
            'GuzzleHttp\Psr7\HttpFactory',
28
            'Http\Factory\Diactoros\RequestFactory',
29
            'Http\Factory\Guzzle\RequestFactory',
30
            'Http\Factory\Slim\RequestFactory',
31
            'Laminas\Diactoros\RequestFactory',
32
            'Slim\Psr7\Factory\RequestFactory',
33
        ],
34
        ResponseFactoryInterface::class => [
35
            'Phalcon\Http\Message\ResponseFactory',
36
            'Nyholm\Psr7\Factory\Psr17Factory',
37
            'Zend\Diactoros\ResponseFactory',
38
            'GuzzleHttp\Psr7\HttpFactory',
39
            'Http\Factory\Diactoros\ResponseFactory',
40
            'Http\Factory\Guzzle\ResponseFactory',
41
            'Http\Factory\Slim\ResponseFactory',
42
            'Laminas\Diactoros\ResponseFactory',
43
            'Slim\Psr7\Factory\ResponseFactory',
44
        ],
45
        ServerRequestFactoryInterface::class => [
46
            'Phalcon\Http\Message\ServerRequestFactory',
47
            'Nyholm\Psr7\Factory\Psr17Factory',
48
            'Zend\Diactoros\ServerRequestFactory',
49
            'GuzzleHttp\Psr7\HttpFactory',
50
            'Http\Factory\Diactoros\ServerRequestFactory',
51
            'Http\Factory\Guzzle\ServerRequestFactory',
52
            'Http\Factory\Slim\ServerRequestFactory',
53
            'Laminas\Diactoros\ServerRequestFactory',
54
            'Slim\Psr7\Factory\ServerRequestFactory',
55
        ],
56
        StreamFactoryInterface::class => [
57
            'Phalcon\Http\Message\StreamFactory',
58
            'Nyholm\Psr7\Factory\Psr17Factory',
59
            'Zend\Diactoros\StreamFactory',
60
            'GuzzleHttp\Psr7\HttpFactory',
61
            'Http\Factory\Diactoros\StreamFactory',
62
            'Http\Factory\Guzzle\StreamFactory',
63
            'Http\Factory\Slim\StreamFactory',
64
            'Laminas\Diactoros\StreamFactory',
65
            'Slim\Psr7\Factory\StreamFactory',
66
        ],
67
        UploadedFileFactoryInterface::class => [
68
            'Phalcon\Http\Message\UploadedFileFactory',
69
            'Nyholm\Psr7\Factory\Psr17Factory',
70
            'Zend\Diactoros\UploadedFileFactory',
71
            'GuzzleHttp\Psr7\HttpFactory',
72
            'Http\Factory\Diactoros\UploadedFileFactory',
73
            'Http\Factory\Guzzle\UploadedFileFactory',
74
            'Http\Factory\Slim\UploadedFileFactory',
75
            'Laminas\Diactoros\UploadedFileFactory',
76
            'Slim\Psr7\Factory\UploadedFileFactory',
77
        ],
78
        UriFactoryInterface::class => [
79
            'Phalcon\Http\Message\UriFactory',
80
            'Nyholm\Psr7\Factory\Psr17Factory',
81
            'Zend\Diactoros\UriFactory',
82
            'GuzzleHttp\Psr7\HttpFactory',
83
            'Http\Factory\Diactoros\UriFactory',
84
            'Http\Factory\Guzzle\UriFactory',
85
            'Http\Factory\Slim\UriFactory',
86
            'Laminas\Diactoros\UriFactory',
87
            'Slim\Psr7\Factory\UriFactory',
88
        ],
89
    ];
90
91
    /**
92
     * {@inheritdoc}
93
     */
94
    public static function getCandidates($type)
95
    {
96
        $candidates = [];
97
        if (isset(self::$classes[$type])) {
98
            foreach (self::$classes[$type] as $class) {
99
                $candidates[] = ['class' => $class, 'condition' => [$class]];
100
            }
101
        }
102
103
        return $candidates;
104
    }
105
}
106