示例#1
0
 /** @return \ReflectionProperty[] */
 private function getReflectionProperties(Resource $resource)
 {
     $type = $resource->getResourceType();
     if (isset($this->reflection[$type])) {
         return $this->reflection[$type];
     }
     $class = new \ReflectionObject($resource);
     $properties = [];
     do {
         foreach ($class->getProperties() as $property) {
             $property->setAccessible(true);
             $properties[self::snakeCase($property->getName())] = $property;
         }
     } while ($class = $class->getParentClass());
     return $this->reflection[$type] = $properties;
 }