Skip to content

Commit 2b0a85e

Browse files
Pavel AlexeevPavel Alexeev
Pavel Alexeev
authored and
Pavel Alexeev
committed
php-kafka#38, php-kafka#40 Use reflection for robust resolving parent class
1 parent 75a43ae commit 2b0a85e

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

Diff for: src/Parser/ClassParser.php

+7-17
Original file line numberDiff line numberDiff line change
@@ -184,28 +184,18 @@ private function getParentClassStatements(): ?array
184184
{
185185
/** @var class-string[] $usedClasses */
186186
$usedClasses = $this->getUsedClasses();
187-
$parentClass = $this->getParentClassName();
188-
189-
if (null === $parentClass) {
190-
return [];
191-
}
192-
193-
if (null !== @$usedClasses[$this->getParentClassName()]) {
194-
$parentClass = $usedClasses[$this->getParentClassName()];
195-
}
196187

197188
try {
198-
$rc = new ReflectionClass($parentClass);
189+
$pc = (new ReflectionClass($this->getNamespace() . '\\' . $this->getClassName()))->getParentClass();
199190
}
200191
catch (\ReflectionException $e) {
201-
try {
202-
$rc = new ReflectionClass($this->getNamespace() . '\\' . $parentClass);
203-
}
204-
catch (\ReflectionException $e) {
205-
throw new ReflectionException("Parent class [{$parentClass}] for [{$this->getNamespace()}\\{$this->getClassName()}] not found!", $e->getCode(), $e);
206-
}
192+
throw new ReflectionException("Can't get parent class for [{$this->getNamespace()}\\{$this->getClassName()}]!", $e->getCode(), $e);
207193
}
208-
$filename = $rc->getFileName();
194+
if (false === $pc) {
195+
return [];
196+
}
197+
198+
$filename = $pc->getFileName();
209199

210200
if (false === $filename) {
211201
return [];

0 commit comments

Comments
 (0)