← Code-Übersicht

HomeAction.php

Pfad: src/Infrastructure/Http/HomeAction.php

Ext: php

Größe: 1195 Bytes

Geändert: 2026-07-15 22:42:51+02

<?php
declare(strict_types=1);

namespace Demo\Infrastructure\Http;

/**
 * Treibender Adapter: rendert die Startseite mit der Bereichs-Uebersicht.
 */
final class HomeAction
{
    /** @var TemplateRenderer Template-Renderer. */
    private TemplateRenderer $view;

    /** @var Navigation Zentrale Bereichsliste (Quelle fuer Nav und Tabelle). */
    private Navigation $nav;

    /**
     * @param TemplateRenderer $view Renderer.
     * @param Navigation       $nav  Bereichsliste.
     */
    public function __construct(TemplateRenderer $view, Navigation $nav)
    {
        $this->view = $view;
        $this->nav = $nav;
    }

    /**
     * Baut die Startseite.
     *
     * @param array<string,string> $params Routen-Parameter (ungenutzt).
     * @return Response HTML-Antwort.
     */
    public function __invoke(array $params): Response
    {
        $html = $this->view->render('layout', [
            'inner' => 'startseite',
            'titel' => 'KI-Gemeinschaft Demo',
            'aktiv' => '/',
            'nav' => $this->nav->items(),
            'bereiche' => $this->nav->items(),
        ]);

        return new Response(200, 'text/html; charset=UTF-8', $html);
    }
}