WIP: render entities

This commit is contained in:
2026-02-13 19:22:08 +01:00
parent 32c5f21438
commit 22ace0c66e
20 changed files with 337 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\MainBundle\Audit;
use Chill\MainBundle\Audit\Exception\ConvertSubjectException;
use Chill\MainBundle\Audit\Exception\DisplaySubjectException;
final readonly class SubjectConverterManager implements SubjectConverterManagerInterface
{
@@ -20,6 +21,11 @@ final readonly class SubjectConverterManager implements SubjectConverterManagerI
* @var iterable<SubjectConverterInterface>
*/
private iterable $converters,
/**
* @var iterable<SubjectDisplayerInterface>
*/
private iterable $displayers,
) {}
public function getSubjectsForEntity(mixed $subject, bool $includeAssociated = false): SubjectBag
@@ -36,4 +42,15 @@ final readonly class SubjectConverterManager implements SubjectConverterManagerI
throw new ConvertSubjectException($subject);
}
public function display(Subject $subject, array $options = []): string
{
foreach ($this->displayers as $displayer) {
if ($displayer->supportsDisplay($subject, $options = [])) {
return $displayer->display($subject, $options = []);
}
}
throw new DisplaySubjectException($subject->asArray());
}
}