<?php
namespace Moka\Cms\Renderer;
use Moka\Cms\Exception\RendererNotFoundException;
class RendererManager
{
/** @var RendererInterface[] */
private array $renderers = [];
public function __construct(iterable $renderers)
{
foreach ($renderers as $renderer) {
$this->add($renderer);
}
}
public function add(RendererInterface $renderer)
{
$this->renderers[$renderer->getName()] = $renderer;
}
public function get(string $name): RendererInterface
{
if (!isset($this->renderers[$name])) {
throw new RendererNotFoundException(sprintf('Renderer "%s" is not found', $name));
}
return $this->renderers[$name];
}
}