diff --git a/src/CustomMapper/Implementation/PropertyMapperResolver.php b/src/CustomMapper/Implementation/PropertyMapperResolver.php index 6753958..3fb70a5 100644 --- a/src/CustomMapper/Implementation/PropertyMapperResolver.php +++ b/src/CustomMapper/Implementation/PropertyMapperResolver.php @@ -66,7 +66,12 @@ public function getPropertyMapper( } } while ($sourceClassReflection = $sourceClassReflection->getParentClass()); - foreach (class_implements($targetClass) as $interface) { + $interfaces = class_implements($sourceClass); + if ($interfaces === false) { + return null; + } + + foreach ($interfaces as $interface) { if (isset($propertyMappers[$interface])) { return $propertyMappers[$interface]; } diff --git a/src/CustomMapper/ObjectMapperTable.php b/src/CustomMapper/ObjectMapperTable.php index 6fe191c..e22ddaf 100644 --- a/src/CustomMapper/ObjectMapperTable.php +++ b/src/CustomMapper/ObjectMapperTable.php @@ -73,7 +73,12 @@ public function getObjectMapper( } } while ($sourceClassReflection = $sourceClassReflection->getParentClass()); - foreach (class_implements($targetClass) as $interface) { + $interfaces = class_implements($sourceClass); + if ($interfaces === false) { + return null; + } + + foreach ($interfaces as $interface) { if (isset($propertyMappers[$interface])) { return $propertyMappers[$interface]; } diff --git a/src/Util/TypeUtil.php b/src/Util/TypeUtil.php index 5a00978..1b8e7ee 100644 --- a/src/Util/TypeUtil.php +++ b/src/Util/TypeUtil.php @@ -416,11 +416,21 @@ private static function getAllClassesFromObject( $class = is_object($objectOrClass) ? $objectOrClass::class : $objectOrClass; $classes[] = $class; - foreach (class_parents($class) as $parentClass) { + $parents = class_parents($class); + if ($parents === false) { + $parents = []; + } + + foreach ($parents as $parentClass) { $classes[] = $parentClass; } - foreach (class_implements($class) as $interface) { + $interfaces = class_implements($class); + if ($interfaces === false) { + $interfaces = []; + } + + foreach ($interfaces as $interface) { $classes[] = $interface; }