32 lines
889 B
PHP
32 lines
889 B
PHP
<?php declare(strict_types = 1);
|
|
|
|
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
|
|
|
|
class BlocksRegistry {
|
|
|
|
/** @var BlockRenderer[] */
|
|
private $blockRenderersMap = [];
|
|
|
|
public function addBlockRenderer(string $blockName, BlockRenderer $renderer): void {
|
|
$this->blockRenderersMap[$blockName] = $renderer;
|
|
}
|
|
|
|
public function hasBlockRenderer(string $blockName): bool {
|
|
return isset($this->blockRenderersMap[$blockName]);
|
|
}
|
|
|
|
public function getBlockRenderer(string $blockName): ?BlockRenderer {
|
|
return $this->blockRenderersMap[$blockName] ?? null;
|
|
}
|
|
|
|
public function removeAllBlockRenderers(): void {
|
|
foreach (array_keys($this->blockRenderersMap) as $blockName) {
|
|
$this->removeBlockRenderer($blockName);
|
|
}
|
|
}
|
|
|
|
private function removeBlockRenderer(string $blockName): void {
|
|
unset($this->blockRenderersMap[$blockName]);
|
|
}
|
|
}
|