eee
This commit is contained in:
+18
-6
@@ -261,11 +261,10 @@ class Scanner extends Component
|
||||
if ($loadFile) {
|
||||
$before = $this->getDeclaredSymbols();
|
||||
require_once $path;
|
||||
$after = $this->getDeclaredSymbols();
|
||||
$classes = array_values(array_unique(array_merge(
|
||||
$classes,
|
||||
array_diff($after, $before)
|
||||
)));
|
||||
if ($classes === []) {
|
||||
$after = $this->getDeclaredSymbols();
|
||||
$classes = array_values(array_diff($after, $before));
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($classes as $class) {
|
||||
@@ -328,7 +327,7 @@ class Scanner extends Component
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($token[0] === T_CLASS && $this->isAnonymousClass($tokens, $i)) {
|
||||
if ($token[0] === T_CLASS && ($this->isAnonymousClass($tokens, $i) || $this->isClassConstant($tokens, $i))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -398,6 +397,19 @@ class Scanner extends Component
|
||||
return false;
|
||||
}
|
||||
|
||||
private function isClassConstant(array $tokens, int $offset): bool
|
||||
{
|
||||
for ($i = $offset - 1; $i >= 0; $i--) {
|
||||
$token = $tokens[$i];
|
||||
if (is_array($token) && in_array($token[0], [T_WHITESPACE, T_COMMENT, T_DOC_COMMENT], true)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return is_array($token) && $token[0] === T_DOUBLE_COLON;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
private function getDeclaredSymbols(): array
|
||||
{
|
||||
return array_merge(get_declared_classes(), get_declared_interfaces(), get_declared_traits());
|
||||
|
||||
Reference in New Issue
Block a user