Completed
Push — master ( f99fed...57dceb )
by Jean-Christophe
03:29
created

JReflection::jsonObject()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 18
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 18
rs 8.8571
c 1
b 0
f 0
cc 5
eloc 14
nc 6
nop 1
1
<?php
2
3
namespace Ajax\service;
4
5
class JReflection {
6
	public static function shortClassName($object){
7
		$classNameWithNamespace = get_class($object);
8
		return substr($classNameWithNamespace, strrpos($classNameWithNamespace, '\\')+1);
9
	}
10
11
	public static function jsonObject($classname){
12
		$object=new $classname();
13
		$class = new \ReflectionClass($classname);
14
		$methods=$class->getMethods(\ReflectionMethod::IS_PUBLIC);
15
		foreach ($methods as $method){
16
			$name=$method->getName();
17
			if(JString::startswith($name, "set")){
18
				$property=\strtolower(JString::replaceAtFirst($name, "set", ""));
19
				$value="__".$property."__";
20
				try{
21
					if($class->getProperty($property)!==null){
22
						\call_user_func_array([$object,$name],[$value]);
23
					}
24
				}catch(\Exception $e){}
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
25
			}
26
		}
27
		return $object;
28
	}
29
30
	public static function callMethod($object,$callback,array $values){
31
		return \call_user_func_array([$object,$callback],$values);
32
	}
33
}