<?php namespace App\Contribution; use App\Contribution\Documents\ContributionDocument; use App\Contribution\Documents\DvDocument; use App\Contribution\Documents\RemscheidDocument; use App\Contribution\Documents\SolingenDocument; class ContributionFactory { /** * @var array<int, class-string<ContributionDocument>> */ private array $documents = [ DvDocument::class, SolingenDocument::class, RemscheidDocument::class, ]; /** * @return array<int, array{id: string, name: string}> */ public function compilerSelect(): array { return collect($this->documents)->map(fn ($document) => [ 'title' => $document::getName(), 'class' => $document, ])->toArray(); } }