Passed
Push — master ( 07ea47...32da0d )
by Jean-Christophe
11:56
created

ValidationModelParser   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 86.67%

Importance

Changes 0
Metric Value
wmc 6
eloc 13
c 0
b 0
f 0
dl 0
loc 26
ccs 13
cts 15
cp 0.8667
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A parse() 0 10 4
A __toString() 0 2 1
A getValidators() 0 2 1
1
<?php
2
3
namespace Ubiquity\contents\validation;
4
5
use Ubiquity\orm\parser\Reflexion;
6
use Ubiquity\utils\base\UArray;
7
8
/**
9
 * @author jc
10
 *
11
 */
12
class ValidationModelParser {
13
14
	protected $validators=[];
15
16 38
	public function parse($modelClass) {
17 38
		$instance=new $modelClass();
18 38
		$properties=Reflexion::getProperties($instance);
19 38
		foreach ( $properties as $property ) {
20 38
			$propName=$property->getName();
21 38
			$annots=Reflexion::getAnnotationsMember($modelClass, $propName, 'validator');
22 38
			if(\count($annots)>0){
23 38
				$this->validators[$propName]=[];
24 38
				foreach ($annots as $annotation){
25 38
					$this->validators[$propName][]=$annotation->getPropertiesAndValues();
26
				}
27
			}
28
		}
29
30 38
	}
31
32 38
	public function getValidators(){
33 38
		return $this->validators;
34
	}
35
36
	public function __toString() {
37
		return "return " . UArray::asPhpArray($this->validators, "array") . ";";
38
	}
39
}
40
41