Completed
Push — master ( d99440...b71151 )
by Hunter
13:25
created

ParserFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 10
c 0
b 0
f 0
wmc 2
lcom 1
cbo 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A make() 0 9 2
1
<?php declare(strict_types=1);
2
3
namespace HSkrasek\OpenAPI\Parsers;
4
5
use HSkrasek\OpenAPI\Loaders\ChainedDecoderFileLoader;
6
use League\JsonReference\Dereferencer;
7
use League\JsonReference\ReferenceSerializer\InlineReferenceSerializer;
8
9
class ParserFactory
10
{
11
    /**
12
     * @var Dereferencer
13
     */
14
    private static $dereferencer;
15
16
    /**
17
     * Create a parser capable of dereferencing schemas
18
     *
19
     * @return ParserInterface
20
     */
21
    public static function make(): ParserInterface
22
    {
23
        if (null === self::$dereferencer) {
24
            self::$dereferencer = (new Dereferencer)->setReferenceSerializer(new InlineReferenceSerializer);
25
            self::$dereferencer->getLoaderManager()->registerLoader('file', new ChainedDecoderFileLoader);
26
        }
27
28
        return new Parser(self::$dereferencer);
29
    }
30
}
31