$managedApplications */ public function __construct( #[Autowire('%app.managed_applications%')] private array $managedApplications, ) {} public function provide(Operation $operation, array $uriVariables = [], array $context = []): ManagedApplication|array { if ($operation instanceof GetCollection) { return array_map( fn (array $app) => $this->buildDto($app), $this->managedApplications, ); } $slug = $uriVariables['slug'] ?? ''; foreach ($this->managedApplications as $app) { if ($app['slug'] === $slug) { return $this->buildDto($app); } } throw new NotFoundHttpException(sprintf('Application "%s" not found.', $slug)); } /** * @param array{name: string, slug: string, maintenance_path: string} $app */ private function buildDto(array $app): ManagedApplication { $dto = new ManagedApplication(); $dto->slug = $app['slug']; $dto->name = $app['name']; $dto->maintenance = file_exists($app['maintenance_path']); return $dto; } }