Passed
Pull Request — master (#30)
by Dmitriy
145:02 queued 129:54
created

ConfigFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 10
dl 0
loc 16
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A create() 0 5 1
1
<?php
2
3
namespace Yiisoft\Composer\Config\Config;
4
5
use Yiisoft\Composer\Config\Builder;
6
7
/**
8
 * Config factory creates Config object of proper class
9
 * according to config name (and maybe other options later).
10
 */
11
class ConfigFactory
12
{
13
    private const KNOWN_TYPES = [
14
        '__files' => System::class,
15
        'aliases' => System::class,
16
        'packages' => System::class,
17
        'envs' => Envs::class,
18
        'params' => Params::class,
19
        'constants' => Constants::class,
20
    ];
21
22
    public function create(Builder $builder, string $name): Config
23
    {
24
        $class = self::KNOWN_TYPES[$name] ?? Config::class;
25
26
        return new $class($builder, $name);
27
    }
28
}
29