Refactor Preprocessor to more classes

[MAILPOET-5591]
This commit is contained in:
Jan Lysý
2023-10-12 17:30:45 +02:00
committed by Jan Lysý
parent 125b0dfe82
commit c1768fd0b2
7 changed files with 75 additions and 18 deletions

View File

@@ -0,0 +1,32 @@
<?php declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Renderer;
use MailPoet\EmailEditor\Engine\Renderer\Preprocessors\Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\Preprocessors\TopLevelPreprocessor;
class PreprocessManager {
/** @var Preprocessor[] */
private $preprocessors = [];
public function __construct(
TopLevelPreprocessor $topLevelPreprocessor
) {
$this->registerPreprocessor($topLevelPreprocessor);
}
/**
* @param array $parsedBlocks
* @return array
*/
public function preprocess(array $parsedBlocks): array {
foreach ($this->preprocessors as $preprocessor) {
$parsedBlocks = $preprocessor->preprocess($parsedBlocks);
}
return $parsedBlocks;
}
public function registerPreprocessor(Preprocessor $preprocessor): void {
$this->preprocessors[] = $preprocessor;
}
}