This commit is contained in:
2026-06-24 20:49:06 +08:00
parent b5e0026816
commit e40db9d1fb
+21 -3
View File
@@ -312,14 +312,24 @@ class Router
); );
$scanner->setConfig($scanConfig); $scanner->setConfig($scanConfig);
// 获取 Master 扫描产生的完整清单,遍历所有已注册类重建注解路由
$manifestEntries = $scanner->getManifestClasses(); $manifestEntries = $scanner->getManifestClasses();
if (empty($manifestEntries)) {
\Kiri::getLogger()->warning('Annotation route rebuild: manifest is empty, annotation routes will NOT be registered');
return;
}
$routeCount = 0;
$classCount = 0;
$errorCount = 0;
$dispatchCount = 0;
foreach ($manifestEntries as $path => $entry) { foreach ($manifestEntries as $path => $entry) {
$classes = is_array($entry) && isset($entry['classes']) ? $entry['classes'] : []; $classes = is_array($entry) && isset($entry['classes']) ? $entry['classes'] : [];
foreach ($classes as $class) { foreach ($classes as $class) {
if (!class_exists($class)) { if (!class_exists($class)) {
continue; continue;
} }
$classCount++;
try { try {
$reflect = $container->getReflectionClass($class); $reflect = $container->getReflectionClass($class);
if (!$reflect->isInstantiable() || $reflect->isTrait() || $reflect->isEnum() || $reflect->isInterface()) { if (!$reflect->isInstantiable() || $reflect->isTrait() || $reflect->isEnum() || $reflect->isInterface()) {
@@ -338,17 +348,25 @@ class Router
$instance = $attribute->newInstance(); $instance = $attribute->newInstance();
if ($instance instanceof Kiri\Di\Interface\InjectMethodInterface) { if ($instance instanceof Kiri\Di\Interface\InjectMethodInterface) {
$instance->dispatch($class, $method->getName()); $instance->dispatch($class, $method->getName());
$dispatchCount++;
} }
} catch (\Throwable $e) { } catch (\Throwable $e) {
\Kiri::getLogger()->error("AnnotationRoute rebuild [{$class}::{$method->getName()}]: " . $e->getMessage()); $errorCount++;
\Kiri::getLogger()->error("Annotation rebuild error [{$class}::{$method->getName()} @ {$attrName}]: {$e->getMessage()}");
} }
} }
} }
} catch (\Throwable $e) { } catch (\Throwable $e) {
\Kiri::getLogger()->error("AnnotationRoute class [{$class}]: " . $e->getMessage()); $errorCount++;
\Kiri::getLogger()->error("Annotation rebuild class [{$class}]: {$e->getMessage()}");
} }
} }
} }
$router = $container->get(DataGrip::class)->get(static::$type);
$routeCount = count($router->dump());
\Kiri::getLogger()->info("Annotation route rebuild: {$classCount} classes processed, {$dispatchCount} annotation routes dispatched, {$routeCount} total routes, {$errorCount} errors");
} }