RuleMap::resolve()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
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