From 1af63ed7ecd2907334643626efd185f02ddbed3e Mon Sep 17 00:00:00 2001 From: Michael Schiemer Date: Mon, 3 Nov 2025 22:48:27 +0100 Subject: [PATCH] refactor(view): simplify dependency injection for template initializers - Replace `DefaultContainer` lookups with direct constructor injection in `TemplateProcessorInitializer` and `TemplateRendererInitializer`. - Streamline method logic by removing redundant operations and ensuring dependencies are passed explicitly. - Enhance readability and maintainability by reducing unnecessary indirections. --- .../View/TemplateProcessorInitializer.php | 10 ++------- .../View/TemplateRendererInitializer.php | 22 +++++++------------ 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/Framework/View/TemplateProcessorInitializer.php b/src/Framework/View/TemplateProcessorInitializer.php index f21c7d51..eeefefaf 100644 --- a/src/Framework/View/TemplateProcessorInitializer.php +++ b/src/Framework/View/TemplateProcessorInitializer.php @@ -23,8 +23,7 @@ final readonly class TemplateProcessorInitializer { public function __construct( private DefaultContainer $container, - ) { - } + ) {} #[Initializer] public function __invoke(Cache $cache): TemplateProcessor @@ -55,7 +54,7 @@ final readonly class TemplateProcessorInitializer $performanceTracker->enable(); } - $processor = new TemplateProcessor( + return new TemplateProcessor( astTransformers: $astTransformers, stringProcessors: $stringProcessors, container: $this->container, @@ -63,10 +62,5 @@ final readonly class TemplateProcessorInitializer compiledTemplateCache: $compiledTemplateCache, performanceTracker: $performanceTracker ); - - $this->container->singleton(TemplateProcessor::class, $processor); - - return $processor; } } - diff --git a/src/Framework/View/TemplateRendererInitializer.php b/src/Framework/View/TemplateRendererInitializer.php index 8be6720c..5f29b4e0 100644 --- a/src/Framework/View/TemplateRendererInitializer.php +++ b/src/Framework/View/TemplateRendererInitializer.php @@ -13,28 +13,22 @@ use App\Framework\View\Loading\TemplateLoader; final readonly class TemplateRendererInitializer { public function __construct( - private DefaultContainer $container, + private TemplateProcessor $templateProcessor, + private TemplateLoader $loader, + private PerformanceService $performanceService, + private Cache $cache, ) {} #[Initializer] public function __invoke(): TemplateRenderer { - $templateProcessor = $this->container->get(TemplateProcessor::class); - $loader = $this->container->get(TemplateLoader::class); - - /** @var PerformanceService $performanceService */ - $performanceService = $this->container->get(PerformanceService::class); - - /** @var Cache $cache */ - $cache = $this->container->get(Cache::class); - $cacheEnabled = false; return new Engine( - loader: $loader, - performanceService: $performanceService, - processor: $templateProcessor, - cache: $cache, + loader: $this->loader, + performanceService: $this->performanceService, + processor: $this->templateProcessor, + cache: $this->cache, cacheEnabled: $cacheEnabled, // Use same cache state for Engine ); }