← Code-Übersicht

SpeichereInhalt.php

Pfad: src/Application/Dokumentation/SpeichereInhalt.php

Ext: php

Größe: 1375 Bytes

Geändert: 2026-07-16 10:48:31+02

<?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 HtmlKonverter 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);
    }
}

Frühere Versionen

Version Zeitpunkt Operation
2 2026-07-16 12:49:36.485359+02 UPDATE