Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 17:58:52 +08:00
commit eac17f89fa
40 changed files with 4048 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace App\MessageHandler;
use Atournayre\Common\AbstractQueryEvent;
use Atournayre\Contracts\CommandBus\QueryInterface;
final class UtilisateurUrlsMessage extends AbstractQueryEvent implements QueryInterface
{
private function __construct(
public string $id,
) {
}
public static function new(
string $id,
): self {
return new self(
id: $id,
);
}
public function id(): string
{
return $this->id;
}
}

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace App\MessageHandler;
use App\Repository\UtilisateurRepositoryInterface;
use App\Urls\UtilisateurUrls;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
#[AsMessageHandler]
final readonly class UtilisateurUrlsMessageHandler
{
public function __construct(
private UtilisateurRepositoryInterface $utilisateurRepository,
private UrlGeneratorInterface $urlGenerator,
) {
}
public function __invoke(UtilisateurUrlsMessage $message): UtilisateurUrls
{
$utilisateur = $this->utilisateurRepository->find($message->id());
return UtilisateurUrls::new(
urlGenerator: $this->urlGenerator,
utilisateur: $utilisateur,
);
}
}