DokuSpeichernAction.php
Pfad: src/Infrastructure/Http/DokuSpeichernAction.php
Ext: php
Größe: 1059 Bytes
Geändert: 2026-07-15T21:49:48+02:00
Frühere Version vom 2026-07-15T21:49:48+02:00 · zur aktuellen Fassung
<?php
declare(strict_types=1);
namespace Demo\Infrastructure\Http;
use Demo\Application\Dokumentation\SpeichereInhalt;
/**
* Treibender Adapter: nimmt den POST des Editors entgegen und speichert (PRG).
*/
final class DokuSpeichernAction
{
/** @var SpeichereInhalt Anwendungsfall. */
private SpeichereInhalt $speichere;
/**
* @param SpeichereInhalt $speichere Anwendungsfall.
*/
public function __construct(SpeichereInhalt $speichere)
{
$this->speichere = $speichere;
}
/**
* Speichert den eingereichten Inhalt und leitet zur Detailseite zurueck.
*
* @param array<string,string> $params Routen-Parameter (slug).
* @return Response Weiterleitung auf die Detailseite.
*/
public function __invoke(array $params): Response
{
$slug = $params['slug'] ?? '';
$editorHtml = is_string($_POST['inhalt'] ?? null) ? $_POST['inhalt'] : '';
$this->speichere->execute($slug, $editorHtml);
return Response::redirect('/doku/' . rawurlencode($slug));
}
}