← Code-Übersicht

PruefeKatalog.php

Pfad: src/Application/Abgleich/PruefeKatalog.php

Ext: php

Größe: 1274 Bytes

Geändert: 2026-07-16 00:34:30+02

<?php
declare(strict_types=1);

namespace Demo\Application\Abgleich;

use Demo\Domain\Abgleich\ArtefaktKatalog;
use Demo\Domain\Abgleich\Abweichung;
use Demo\Domain\Abgleich\RealitaetsPruefung;

/**
 * Anwendungsfall: prueft jeden Katalog-Eintrag gegen die Realitaet.
 */
final class PruefeKatalog
{
    /** @var ArtefaktKatalog Quelle der Katalog-Eintraege. */
    private ArtefaktKatalog $katalog;

    /** @var RealitaetsPruefung Realitaets-Pruefung. */
    private RealitaetsPruefung $pruefung;

    /**
     * @param ArtefaktKatalog    $katalog  Katalog-Zugriff.
     * @param RealitaetsPruefung $pruefung Realitaets-Pruefung.
     */
    public function __construct(ArtefaktKatalog $katalog, RealitaetsPruefung $pruefung)
    {
        $this->katalog = $katalog;
        $this->pruefung = $pruefung;
    }

    /**
     * Fuehrt den Abgleich aus.
     *
     * @return list<Abweichung> Befund je Eintrag.
     */
    public function execute(): array
    {
        $out = [];
        foreach ($this->katalog->alle() as $eintrag) {
            $out[] = new Abweichung(
                $eintrag->typ,
                $eintrag->bezeichner,
                $this->pruefung->pruefe($eintrag->typ, $eintrag->bezeichner)
            );
        }

        return $out;
    }
}