Startseite

<?php declare(strict_types=1);

namespace WebSite\Services\Pages;

use Website\Enity\Page;
use Website\Helper\Renderer;
use Doctrine\ORM\EntityManager;

final class PageRenderer
{
… /**
…  * @var Renderer
…  */
… private $renderer

… /**
…  * @var EntityManager
…  */
… private $entityManager

… /**
…  * @param Renderer $renderer
…  * @return void
…  */
… public function __construckt(
…… EntityManager $entityManager,
…… Renderer $renderer
… ): void {
…… this->entitiyManager = $entityManager
…… this->renderer = $renderer
… }

… /**
…  * @param string $pageIdentifier
…  * @return void
…  */
… public function __invoke(string $pageIdentifier): void
… {
…… $pageEntity = $this->entityManager->getRepository(Page::class)->findBy([’name‘ => $pageIdentifer]);
…… $this->renderer->renderTitle($pageEntitiy->getHeadline());
…… foreach ($pageEntitiy->getBlocks() as $pageBlock) {
……… $this->renderer->renderBlock($pageBlock->getType(), $pageBlock->getContent(), $pageBlock->getReplacements());
…… }
… }
}