From 80128edd39ac2e45124e17e622507b19d32601a5 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Mon, 8 Dec 2025 17:00:34 +0800 Subject: [PATCH] Add patch description display --- src/StaticPHP/DI/ApplicationContext.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/StaticPHP/DI/ApplicationContext.php b/src/StaticPHP/DI/ApplicationContext.php index c2720353..9b702ccb 100644 --- a/src/StaticPHP/DI/ApplicationContext.php +++ b/src/StaticPHP/DI/ApplicationContext.php @@ -7,8 +7,10 @@ namespace StaticPHP\DI; use DI\Container; use DI\ContainerBuilder; use Psr\Container\ContainerInterface; +use StaticPHP\Attribute\PatchDescription; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +use ZM\Logger\ConsoleColor; use function DI\factory; @@ -138,6 +140,14 @@ class ApplicationContext public static function invoke(callable $callback, array $context = []): mixed { logger()->debug('[INVOKE] ' . (is_array($callback) ? (is_object($callback[0]) ? get_class($callback[0]) : $callback[0]) . '::' . $callback[1] : (is_string($callback) ? $callback : 'Closure'))); + + // get if callback has attribute PatchDescription + $ref = new \ReflectionFunction(\Closure::fromCallable($callback)); + $attributes = $ref->getAttributes(PatchDescription::class); + foreach ($attributes as $attribute) { + $attrInstance = $attribute->newInstance(); + logger()->info(ConsoleColor::magenta('[PATCH]') . ConsoleColor::green(" {$attrInstance->description}")); + } return self::getInvoker()->invoke($callback, $context); }