$renderers */ public function __construct(protected readonly iterable $renderers = []) {} /** * @deprecated since TYPO3 v15.0, this method is a no-op and will be removed in TYPO3 v16.0. Register the renderer as a tagged service using the #[AsFileRenderer] attribute instead. */ public function registerRendererClass(string $className): void { trigger_error( 'RendererRegistry->registerRendererClass() is a no-op since TYPO3 v15.0 and will be removed in TYPO3 v16.0.' . ' Register "' . $className . '" as a tagged service using the #[AsFileRenderer] attribute instead.', E_USER_DEPRECATED ); } /** * Get all registered renderer instances * * @return FileRendererInterface[] */ protected function getRendererInstances(): array { if ($this->instances === null) { $this->instances = []; foreach ($this->renderers as $renderer) { $this->instances[] = $renderer; } } return $this->instances; } /** * Get matching renderer with highest priority */ public function getRenderer(FileInterface $file): ?FileRendererInterface { foreach ($this->getRendererInstances() as $fileRenderer) { if ($fileRenderer->canRender($file)) { return $fileRenderer; } } return null; } }