results->interfaces->get(DomProcessor::class) as $className) { $domImplementations[] = $className->getFullyQualified(); } $stringImplementations = []; foreach ($this->results->interfaces->get(StringProcessor::class) as $className) { $stringImplementations[] = $className->getFullyQualified(); } $templateProcessor = new TemplateProcessor( [ComponentProcessor::class, ...$domImplementations], $stringImplementations, $this->container, ); $templateProcessor = new TemplateProcessor($doms, $strings, $this->container); $this->container->singleton(TemplateProcessor::class, $templateProcessor); $pathProvider = $this->container->get(PathProvider::class); $cache = $this->container->get(Cache::class); $performanceService = $this->container->get(PerformanceService::class); $loader = new TemplateLoader(pathProvider: $pathProvider, cache: $cache, discoveryRegistry: $this->results/*, templates: $templates*/); $this->container->singleton(TemplateLoader::class, $loader); return new Engine( $loader, $pathProvider, $performanceService, processor: $templateProcessor, container: $this->container, cache: $cache, ); } }