Completed
Push — master ( 2290a8...534ed1 )
by wen
13:46
created

ElementFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
lcom 0
cbo 1
dl 0
loc 33
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B __construct() 0 26 1
1
<?php
2
3
namespace Sco\Admin\Form;
4
5
use Illuminate\Foundation\Application;
6
use Sco\Admin\Contracts\Form\ElementFactoryInterface;
7
use Sco\Admin\Form\Elements\Cascader;
8
use Sco\Admin\Form\Elements\Checkbox;
9
use Sco\Admin\Form\Elements\Date;
10
use Sco\Admin\Form\Elements\DateRange;
11
use Sco\Admin\Form\Elements\DateTime;
12
use Sco\Admin\Form\Elements\DateTimeRange;
13
use Sco\Admin\Form\Elements\ElSwitch;
14
use Sco\Admin\Form\Elements\Email;
15
use Sco\Admin\Form\Elements\File;
16
use Sco\Admin\Form\Elements\Hidden;
17
use Sco\Admin\Form\Elements\Image;
18
use Sco\Admin\Form\Elements\Images;
19
use Sco\Admin\Form\Elements\Number;
20
use Sco\Admin\Form\Elements\Password;
21
use Sco\Admin\Form\Elements\Radio;
22
use Sco\Admin\Form\Elements\Select;
23
use Sco\Admin\Form\Elements\Text;
24
use Sco\Admin\Form\Elements\Textarea;
25
use Sco\Admin\Form\Elements\Tree;
26
use Sco\Admin\Traits\AliasBinder;
27
28
/**
29
 * @method \Sco\Admin\Form\Elements\Text text($name, $title)
30
 * @method \Sco\Admin\Form\Elements\Email email($name, $title)
31
 * @method \Sco\Admin\Form\Elements\Select select($name, $title, $options)
32
 * @method \Sco\Admin\Form\Elements\Textarea textarea($name, $title)
33
 * @method \Sco\Admin\Form\Elements\Number number($name, $title)
34
 * @method \Sco\Admin\Form\Elements\Password password($name, $title)
35
 * @method \Sco\Admin\Form\Elements\File file($name, $title)
36
 * @method \Sco\Admin\Form\Elements\Image image($name, $title)
37
 * @method \Sco\Admin\Form\Elements\Images images($name, $title)
38
 * @method \Sco\Admin\Form\Elements\Hidden hidden($name)
39
 * @method \Sco\Admin\Form\Elements\ElSwitch elswitch($name, $title)
40
 * @method \Sco\Admin\Form\Elements\Date date($name, $title)
41
 * @method \Sco\Admin\Form\Elements\DateTime datetime($name, $title)
42
 * @method \Sco\Admin\Form\Elements\DateRange daterange($startName, $endName, $title)
43
 * @method \Sco\Admin\Form\Elements\DateTimeRange datetimerange($startName, $endName, $title)
44
 */
45
class ElementFactory implements ElementFactoryInterface
46
{
47
    use AliasBinder;
48
49
    protected $app;
50
51
    public function __construct(Application $app)
52
    {
53
        $this->app = $app;
54
55
        $this->registerAliases([
56
            'text'          => Text::class,
57
            'radio'         => Radio::class,
58
            'checkbox'      => Checkbox::class,
59
            'textarea'      => Textarea::class,
60
            'select'        => Select::class,
61
            'hidden'        => Hidden::class,
62
            'number'        => Number::class,
63
            'password'      => Password::class,
64
            'email'         => Email::class,
65
            'file'          => File::class,
66
            'image'         => Image::class,
67
            'images'        => Images::class,
68
            'elswitch'      => ElSwitch::class,
69
            'date'          => Date::class,
70
            'datetime'      => DateTime::class,
71
            'daterange'     => DateRange::class,
72
            'datetimerange' => DateTimeRange::class,
73
            'cascader'      => Cascader::class,
74
            'tree'          => Tree::class,
75
        ]);
76
    }
77
}
78