public static function findProperty($class, $name, $access = true)
{
$reflection = new \ReflectionClass($class);
while (!$reflection->hasProperty($name)) {
if (!($reflection = $reflection->getParentClass())) {
throw new Exception(sprintf('Class "%s" does not have property "%s" defined.', $class, $name));
}
}
$property = $reflection->getProperty($name);
$property->setAccessible($access);
return $property;
}