ModelResolver::getTable()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Fenos\Notifynder\Resolvers;
4
5
use Illuminate\Support\Str;
6
7
class ModelResolver
8
{
9
    protected $models = [];
10
    protected $tables = [];
11
12
    public function setModel($class, $model)
13
    {
14
        $this->models[$class] = $model;
15
    }
16
17
    public function setTable($class, $table)
18
    {
19
        $this->tables[$class] = $table;
20
    }
21
22
    public function getModel($class)
23
    {
24
        if (isset($this->models[$class])) {
25
            return $this->models[$class];
26
        }
27
28
        return $class;
29
    }
30
31
    public function getTable($class)
32
    {
33
        if (isset($this->tables[$class])) {
34
            return $this->tables[$class];
35
        }
36
37
        return str_replace('\\', '', Str::snake(Str::plural(class_basename($this->getModel($class)))));
38
    }
39
40
    public function make($class, array $attributes = [])
41
    {
42
        $model = $this->getModel($class);
43
        if (! class_exists($model)) {
44
            throw new \ReflectionException("Class {$model} does not exist");
45
        }
46
47
        return new $model($attributes);
48
    }
49
}
50