RuleMap   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 1
lcom 1
cbo 0
dl 0
loc 29
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A resolve() 0 4 1
1
<?php
2
3
namespace Infinitypaul\Validator;
4
5
use Infinitypaul\Validator\Rules\Between;
6
use Infinitypaul\Validator\Rules\Confirmed;
7
use Infinitypaul\Validator\Rules\Email;
8
use Infinitypaul\Validator\Rules\Image;
9
use Infinitypaul\Validator\Rules\Max;
10
use Infinitypaul\Validator\Rules\Numeric;
11
use Infinitypaul\Validator\Rules\Optional;
12
use Infinitypaul\Validator\Rules\Required;
13
use Infinitypaul\Validator\Rules\RequiredWith;
14
use Infinitypaul\Validator\Rules\Same;
15
16
class RuleMap
17
{
18
    /**
19
     * @var string[]
20
     */
21
    protected static $map = [
22
        'required' => Required::class,
23
        'email' => Email::class,
24
        'max' => Max::class,
25
        'between' => Between::class,
26
        'required_with'=> RequiredWith::class,
27
        'optional' => Optional::class,
28
        'same' => Same::class,
29
        'numeric' => Numeric::class,
30
        'confirmed' => Confirmed::class,
31
        'image' => Image::class,
32
    ];
33
34
    /**
35
     * @param $rule
36
     * @param $options
37
     *
38
     * @return mixed
39
     */
40
    public static function resolve($rule, $options)
41
    {
42
        return new static::$map[$rule](...$options);
43
    }
44
}
45