← Code-Übersicht

SpeichereInhalt.php

Pfad: src/Application/Dokumentation/SpeichereInhalt.php

Ext: php

Größe: 1376 Bytes

Geändert: 2026-07-16T01:39:02+02:00

Frühere Version vom 2026-07-16T01:39:02+02:00 · zur aktuellen Fassung

<?php
declare(strict_types=1);

namespace Demo\Application\Dokumentation;

use Demo\Domain\Dokumentation\DokumentationRepository;
use Demo\Domain\Dokumentation\HtmlKonverter;

/**
 * Anwendungsfall: nimmt bearbeitetes Editor-HTML entgegen, wandelt es in
 * bereinigtes Markdown und speichert es.
 */
final class SpeichereInhalt
{
    /** @var DokumentationRepository Injizierter Port. */
    private DokumentationRepository $repository;

    /** @var HtmlToMarkdown Konverter, der zugleich auf die Whitelist reduziert. */
    private HtmlKonverter $konverter;

    /**
     * @param DokumentationRepository $repository Datenzugriff.
     * @param HtmlKonverter           $konverter  HTML-nach-Markdown-Konverter (Port).
     */
    public function __construct(DokumentationRepository $repository, HtmlKonverter $konverter)
    {
        $this->repository = $repository;
        $this->konverter = $konverter;
    }

    /**
     * Konvertiert das Editor-HTML und speichert das Ergebnis.
     *
     * @param string $slug       Ziel-Slug.
     * @param string $editorHtml Rohes HTML aus dem WYSIWYG-Editor.
     * @return bool True, wenn gespeichert wurde.
     */
    public function execute(string $slug, string $editorHtml): bool
    {
        $markdown = $this->konverter->convert($editorHtml);

        return $this->repository->speichereInhalt($slug, $markdown);
    }
}