chore: complete update

This commit is contained in:
2025-07-17 16:24:20 +02:00
parent 899227b0a4
commit 64a7051137
1300 changed files with 85570 additions and 2756 deletions

View File

@@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
namespace App\Framework\QueryBus;
use App\Framework\Core\AttributeMapper;
use ReflectionClass;
use ReflectionMethod;
/**
* Mapper für das EventHandler-Attribut
*/
final class QueryHandlerMapper implements AttributeMapper
{
/**
* Gibt die Attributklasse zurück, die dieser Mapper verarbeitet
*/
public function getAttributeClass(): string
{
return QueryHandler::class;
}
/**
* Implementiert die map-Methode aus dem AttributeMapper-Interface
*
* @param object $reflectionTarget Das Reflektionsobjekt (ReflectionClass|ReflectionMethod)
* @param object $attributeInstance Die Attributinstanz
* @return array|null Die Attributdaten oder null, wenn nicht verarbeitet werden kann
*/
public function map(object $reflectionTarget, object $attributeInstance): ?array
{
if (!($reflectionTarget instanceof ReflectionMethod)) {
return null;
}
$parameters = $reflectionTarget->getParameters();
// Event-Handler müssen mindestens einen Parameter haben (das Event)
if (count($parameters) < 1) {
return null;
}
$eventType = $parameters[0]->getType();
if (!$eventType || $eventType->isBuiltin()) {
return null;
}
$eventClassName = $eventType->getName();
return [
'class' => $reflectionTarget->getDeclaringClass()->getName(),
'method' => $reflectionTarget->getName(),
'event_class' => $eventClassName,
'attribute_data' => [
'priority' => $attributeInstance->priority ?? 0,
'stopPropagation' => $attributeInstance->stopPropagation ?? false
],
];
}
}