Completed
Push — master ( f4588e...60b2e1 )
by Maxime
02:53
created

NamespaceResolver::mapperClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 4
ccs 0
cts 4
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: mfrancois
5
 * Date: 05/09/2018
6
 * Time: 11:31
7
 */
8
9
namespace Distilleries\Contentful\Helpers;
10
11
12
use Distilleries\Contentful\Models\Base\ContentfulMapper;
13
use Distilleries\Contentful\Models\Base\ContentfulModel;
14
15
class NamespaceResolver
16
{
17
18
    public static function modelClass(string $model): ?string
19
    {
20
        return self::load('contentful.namespace.model', $model);
21
    }
22
23
    public static function model(string $model): ?ContentfulModel
24
    {
25
        $class = self::modelClass($model);
26
27
        if (!empty($class)) {
28
            return new $class;
29
        }
30
31
        return null;
32
    }
33
34
35
36
    public static function mapperClass(string $mapper): ?string
37
    {
38
        return self::load('contentful.namespace.mapper', $mapper);
39
    }
40
41
    public static function mapper(string $mapper): ?ContentfulMapper
42
    {
43
        $class = self::mapperClass($mapper);
44
45
        if (!empty($class)) {
46
            return new $class;
47
        }
48
49
        return null;
50
    }
51
52
53
    public static function load(string $key, string $element): ?string
54
    {
55
        foreach (config($key, []) as $namespace) {
56
            $modelClass = rtrim($namespace,
57
                    '\\') . '\\' . studly_case($element);
58
59
            if (class_exists($modelClass)) {
60
                return $modelClass;
61
            }
62
        }
63
64
        return null;
65
    }
66
}