Completed
Push — master ( e1ce60...8f54cc )
by Jean-Christophe
03:31
created

JReflection::getterName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 2
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=\lcfirst(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){
25
					//Nothing to do
26
				}
27
			}
28
		}
29
		return $object;
30
	}
31
32
	public static function callMethod($object,$callback,array $values){
33
		return \call_user_func_array([$object,$callback],$values);
34
	}
35
36
	public static function getterName($propertyName,$prefix="get"){
37
		return $prefix.\ucfirst($propertyName);
38
	}
39
}