← Code-Übersicht

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