This commit is contained in:
2023-08-03 11:31:43 +08:00
parent 4af7d69556
commit d4dffb8ad1
+31
View File
@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace Kiri\Router\Annotate;
use ReflectionException;
#[\Attribute(\Attribute::TARGET_CLASS)]
class Controller
{
/**
* @throws ReflectionException
*/
public function dispatch(object $object): void
{
$reflection = \Kiri::getDi()->getReflectionClass($object::class);
foreach ($reflection->getMethods() as $method) {
$attributes = $method->getAttributes();
foreach ($attributes as $attribute) {
if (!class_exists($attribute->getName())) {
continue;
}
$attribute->newInstance()->dispatch($object, $method->getName());
}
}
}
}