Passed
Push — master ( b6f0e0...b7a10a )
by Alexander
16:24 queued 11:42
created

ConfigOutputFactory::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Composer\Config\Config;
6
7
use Yiisoft\Composer\Config\Builder;
8
9
/**
10
 * Config factory creates Config object of proper class
11
 * according to config name (and maybe other options later).
12
 */
13
class ConfigOutputFactory
14
{
15
    private const KNOWN_TYPES = [
16
        '__files' => System::class,
17
        'packages' => System::class,
18
        'envs' => Envs::class,
19
        'params' => Params::class,
20
        'constants' => Constants::class,
21
    ];
22
23 4
    public function create(Builder $builder, string $name): ConfigOutput
24
    {
25 4
        $class = self::KNOWN_TYPES[$name] ?? ConfigOutput::class;
26
27 4
        return new $class($builder, $name);
28
    }
29
}
30