Completed
Push — master ( 0d5c20...3309bb )
by Changwan
09:19
created

PropertyTesterAbstract::getProp()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 8
nc 3
nop 1
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
namespace Wandu\Validator\Testers;
3
4
use Wandu\Validator\Contracts\Tester;
5
6
abstract class PropertyTesterAbstract implements Tester
7
{
8
    /** @var string[] */
9
    protected $keys;
10
11
    public function __construct($criteria)
12
    {
13
        $this->keys = array_map("trim", explode(".", $criteria));
14
    }
15
    
16
    protected function getProp($origin)
17
    {
18
        $keys = $this->keys;
19
        $prop = $origin;
20
        while (count($keys)) {
21
            $key = array_shift($keys);
22
            if (!isset($prop[$key])) return;
23
            $prop = $prop[$key];
24
        }
25
        return $prop;
26
    }
27
}
28