Passed
Pull Request — master (#9)
by Magnar Ovedal
02:07
created

HttpFactory   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 7
eloc 8
dl 0
loc 35
ccs 0
cts 14
cp 0
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A streamFactory() 0 3 1
A serverRequestFactory() 0 3 1
A uploadedFileFactory() 0 3 1
A responseFactory() 0 3 1
A uriFactory() 0 3 1
A locate() 0 3 1
A requestFactory() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Http\Factory\Discovery;
5
6
use Psr\Http\Message\RequestFactoryInterface;
7
use Psr\Http\Message\ResponseFactoryInterface;
8
use Psr\Http\Message\ServerRequestFactoryInterface;
9
use Psr\Http\Message\StreamFactoryInterface;
10
use Psr\Http\Message\UploadedFileFactoryInterface;
11
use Psr\Http\Message\UriFactoryInterface;
12
13
final class HttpFactory extends DiscoveryCache
14
{
15
    public static function requestFactory(): RequestFactoryInterface
16
    {
17
        return self::makeInstance(RequestFactoryInterface::class);
18
    }
19
20
    public static function responseFactory(): ResponseFactoryInterface
21
    {
22
        return self::makeInstance(ResponseFactoryInterface::class);
23
    }
24
25
    public static function serverRequestFactory(): ServerRequestFactoryInterface
26
    {
27
        return self::makeInstance(ServerRequestFactoryInterface::class);
28
    }
29
30
    public static function streamFactory(): StreamFactoryInterface
31
    {
32
        return self::makeInstance(StreamFactoryInterface::class);
33
    }
34
35
    public static function uploadedFileFactory(): UploadedFileFactoryInterface
36
    {
37
        return self::makeInstance(UploadedFileFactoryInterface::class);
38
    }
39
40
    public static function uriFactory(): UriFactoryInterface
41
    {
42
        return self::makeInstance(UriFactoryInterface::class);
43
    }
44
45
    protected static function locate(string $interface): string
46
    {
47
        return FactoryLocator::locate($interface);
48
    }
49
}
50