ProzessListeAction.php
Pfad: src/Infrastructure/Http/ProzessListeAction.php
Ext: php
Größe: 1419 Bytes
Geändert: 2026-07-15 23:57:47+02
<?php
declare(strict_types=1);
namespace Demo\Infrastructure\Http;
use Demo\Application\Prozess\ListeProzesse;
/**
* Treibender Adapter: rendert die Uebersicht /prozesse (sortier-/filterbare Tabelle).
*/
final class ProzessListeAction
{
/** @var ListeProzesse Anwendungsfall. */
private ListeProzesse $liste;
/** @var TemplateRenderer Template-Renderer. */
private TemplateRenderer $view;
/** @var Navigation Hauptnavigation. */
private Navigation $nav;
/**
* @param ListeProzesse $liste Anwendungsfall.
* @param TemplateRenderer $view Renderer.
* @param Navigation $nav Navigation.
*/
public function __construct(ListeProzesse $liste, TemplateRenderer $view, Navigation $nav)
{
$this->liste = $liste;
$this->view = $view;
$this->nav = $nav;
}
/**
* Baut die Uebersichtsseite.
*
* @param array<string,string> $params Routen-Parameter (ungenutzt).
* @return Response HTML-Antwort.
*/
public function __invoke(array $params): Response
{
$html = $this->view->render('layout', [
'inner' => 'prozess-liste',
'titel' => 'Prozesse',
'aktiv' => '/prozesse',
'nav' => $this->nav->items(),
'prozesse' => $this->liste->execute(),
]);
return new Response(200, 'text/html; charset=UTF-8', $html);
}
}