16 if (\is_string($instance)) {
17 $instance=
new $instance();
19 $reflect=new \ReflectionClass($instance);
20 $props=$reflect->getProperties();
24 public static function getMethods($instance, $filter=null) {
25 $reflect=new \ReflectionClass($instance);
26 $methods=$reflect->getMethods($filter);
35 $prop=self::getProperty($instance, $member);
36 $prop->setAccessible(
true);
37 return $prop->getValue($instance);
41 $prop=self::getProperty($instance, $member);
43 $prop->setAccessible(
true);
44 $prop->setValue($instance,$value);
51 $reflect=new \ReflectionClass($instance);
53 if($reflect->hasProperty($member))
54 $prop=$reflect->getProperty($member);
60 $className=get_class($instance);
62 $props=self::getProperties($instance);
63 foreach ( $props as $prop ) {
64 $prop->setAccessible(
true);
65 $v=$prop->getValue($instance);
77 $annot=Annotations::ofClass($class, $annotation);
82 $annot=Annotations::ofProperty($class, $member, $annotation);
83 if (\
sizeof($annot) > 0)
89 $annots=Annotations::ofMethod($class, $method, $annotation);
90 if (\
sizeof($annots) > 0)
96 $props=self::getProperties($class);
98 foreach ( $props as $prop ) {
99 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
100 if ($annot !==
false)
101 $ret[$prop->getName()]=$annot;
107 $props=self::getProperties($class);
109 foreach ( $props as $prop ) {
110 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
111 if ($annot !==
false)
118 $props=self::getProperties($class);
120 foreach ( $props as $prop ) {
121 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
122 if ($annot !==
false)
123 $ret[]=$prop->getName();
129 $ret=self::getAnnotationMember($class, $member,
"@column");
133 return $ret->nullable;
137 $ret=self::getAnnotationMember($class, $member,
"@column");
145 if (self::getAnnotationMember($class, $member,
"@transient") !==
false || self::getAnnotationMember($class, $member,
"@manyToOne") !==
false || self::getAnnotationMember($class, $member,
"@manyToMany") !==
false || self::getAnnotationMember($class, $member,
"@oneToMany") !==
false)
152 $ret=self::getAnnotationMember($class, $member,
"@column");
153 if ($ret ===
false || !isset($ret->name))
162 if (\
sizeof($ret) === 0) {
163 $posSlash=strrpos($class,
'\\');
164 if ($posSlash !==
false)
165 $class=substr($class, $posSlash + 1);
175 foreach ( $method->getParameters() as $param ) {
176 $result[]=$param->name;
static getMembersWithAnnotation($class, $annotation)
static getTableName($class)
static getProperties($instance)
static getKeyFields($instance)
static getAnnotationsMethod($class, $method, $annotation)
static getMethodParameters(\ReflectionMethod $method)
static isNotNullOrNullAccepted($v, $className, $member)
static setMemberValue($instance, $member, $value)
static getDbType($class, $member)
static getPropertiesAndValues($instance, $props=NULL)
Utilitaires de Reflexion.
static isSerializable($class, $member)
static getAnnotationClass($class, $annotation)
static getMembersNameWithAnnotation($class, $annotation)
static getMemberValue($instance, $member)
static getMethods($instance, $filter=null)
static getFieldName($class, $member)
static getMembersAnnotationWithAnnotation($class, $annotation)
static getFieldName($class, $member)
static isNullable($class, $member)
static getAnnotationMember($class, $member, $annotation)
static isSerializable($class, $member)
static getProperty($instance, $member)