17 if (\is_string($instance)) {
18 $instance=
new $instance();
20 $reflect=new \ReflectionClass($instance);
21 $props=$reflect->getProperties();
25 public static function getMethods($instance, $filter=null) {
26 $reflect=new \ReflectionClass($instance);
27 $methods=$reflect->getMethods($filter);
36 $prop=self::getProperty($instance, $member);
37 $prop->setAccessible(
true);
38 return $prop->getValue($instance);
42 $prop=self::getProperty($instance, $member);
44 $prop->setAccessible(
true);
45 $prop->setValue($instance,$value);
52 $reflect=new \ReflectionClass($instance);
54 if($reflect->hasProperty($member))
55 $prop=$reflect->getProperty($member);
61 $className=get_class($instance);
63 $props=self::getProperties($instance);
64 foreach ( $props as $prop ) {
65 $prop->setAccessible(
true);
66 $v=$prop->getValue($instance);
78 $annot=Annotations::ofClass($class, $annotation);
83 $annot=Annotations::ofProperty($class, $member, $annotation);
84 if (\
sizeof($annot) > 0)
90 $annots=Annotations::ofMethod($class, $method, $annotation);
91 if (\
sizeof($annots) > 0)
97 $props=self::getProperties($class);
99 foreach ( $props as $prop ) {
100 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
101 if ($annot !==
false)
102 $ret[$prop->getName()]=$annot;
108 $props=self::getProperties($class);
110 foreach ( $props as $prop ) {
111 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
112 if ($annot !==
false)
119 $props=self::getProperties($class);
121 foreach ( $props as $prop ) {
122 $annot=self::getAnnotationMember($class, $prop->getName(), $annotation);
123 if ($annot !==
false)
124 $ret[]=$prop->getName();
130 $ret=self::getAnnotationMember($class, $member,
"@column");
134 return $ret->nullable;
138 $ret=self::getAnnotationMember($class, $member,
"@column");
146 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)
153 $ret=self::getAnnotationMember($class, $member,
"@column");
154 if ($ret ===
false || !isset($ret->name))
163 if (\
sizeof($ret) === 0) {
164 $posSlash=strrpos($class,
'\\');
165 if ($posSlash !==
false)
166 $class=substr($class, $posSlash + 1);
176 foreach ( $method->getParameters() as $param ) {
177 $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)