respect-validation/library/Message/TemplateCollector.php
Henrique Moody 02b70bf1cb
Move Template to the Message namespace
That way, everything related to messages would stay in the same
namespace.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2024-02-09 19:50:25 +01:00

34 lines
777 B
PHP

<?php
/*
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
* SPDX-License-Identifier: MIT
*/
declare(strict_types=1);
namespace Respect\Validation\Message;
use ReflectionClass;
final class TemplateCollector
{
/** @var array<string, array<Template>> */
private array $templates = [];
/**
* @return array<Template>
*/
public function extract(object $object): array
{
if (!isset($this->templates[$object::class])) {
$reflection = new ReflectionClass($object);
foreach ($reflection->getAttributes(Template::class) as $attribute) {
$this->templates[$object::class][] = $attribute->newInstance();
}
}
return $this->templates[$object::class] ?? [];
}
}