Also read private properties of parent classes

This commit is contained in:
Henrique Moody 2018-01-23 21:59:49 +01:00
parent 9bad066765
commit 8a09799e7e
No known key found for this signature in database
GPG key ID: 221E9281655813A6

View file

@ -29,8 +29,6 @@ use Respect\Validation\Exceptions\ValidationException;
* Factory of objects.
*
* @author Henrique Moody <henriquemoody@gmail.com>
*
* @since 0.8.0
*/
final class Factory
{
@ -228,11 +226,11 @@ final class Factory
/**
* @param Validatable $validatable
* @param ReflectionObject $reflection
* @param ReflectionClass $reflection
*
* @return array
*/
private function extractPropertiesValues(Validatable $validatable, ReflectionObject $reflection): array
private function extractPropertiesValues(Validatable $validatable, ReflectionClass $reflection): array
{
$values = [];
foreach ($reflection->getProperties() as $property) {
@ -241,6 +239,10 @@ final class Factory
$values[$property->getName()] = $property->getValue($validatable);
}
if (($parentReflection = $reflection->getParentClass())) {
return $values + $this->extractPropertiesValues($validatable, $parentReflection);
}
return $values;
}
}