Named   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A mark() 0 10 2
A has() 0 3 1
A get() 0 3 1
1
<?php
2
/**
3
 * Valid named
4
 * User: moyo
5
 * Date: 2018/6/4
6
 * Time: 3:25 PM
7
 */
8
9
namespace Carno\Validator\Valid;
10
11
use Carno\Validator\Chips\VWaits;
12
13
class Named
14
{
15
    use VWaits;
16
17
    /**
18
     * @var Rule[]
19
     */
20
    private $alias = [];
21
22
    /**
23
     * @param string $name
24
     * @return bool
25
     */
26
    public function has(string $name) : bool
27
    {
28
        return isset($this->alias[$name]);
29
    }
30
31
    /**
32
     * @param string $name
33
     * @return Rule
34
     */
35
    public function get(string $name) : Rule
36
    {
37
        return $this->alias[$name];
38
    }
39
40
    /**
41
     * @param string $expr
42
     * @param Executor $valid
43
     * @return Rule
44
     */
45
    public function mark(string $expr, Executor $valid) : Rule
46
    {
47
        $named = trim(substr($expr, 0, $fwp = strpos($expr, ' ')));
48
        $expr = trim(substr($expr, $fwp + 1));
49
50
        $this->alias[$named] = $rule = $valid->analyzing($expr);
51
52
        $this->waiting($named) && $this->resolving($named, $rule);
53
54
        return $rule;
55
    }
56
}
57