From a76545c449f4667d076861af1ebf69fc6da55a5f Mon Sep 17 00:00:00 2001 From: "Carlos Alberto B. Carucce" Date: Mon, 1 Jul 2024 13:18:38 -0300 Subject: [PATCH 1/2] accept predefined constructor arguments --- src/ServiceContainer.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ServiceContainer.php b/src/ServiceContainer.php index 8030232..e662c4c 100644 --- a/src/ServiceContainer.php +++ b/src/ServiceContainer.php @@ -1,5 +1,7 @@ singletons[$id])) { return $this->singletons[$id]; @@ -69,10 +72,9 @@ public function get(string $id): mixed try { $className = $this->aliases[$id] ?? $id; $reflectionClass = new ReflectionClass($className); - $arguments = []; if ($constructor = $reflectionClass->getConstructor()) { - $arguments = $this->createArguments($constructor); + $arguments = $this->createArguments($constructor, $arguments); } $instance = $reflectionClass->newInstanceArgs($arguments); @@ -118,7 +120,8 @@ public function has(string $id): bool private function createArguments( ReflectionMethod|ReflectionFunction $reflectionMethod, array $arguments = [] - ): array { + ): array + { foreach ($reflectionMethod->getParameters() as $reflectionParameter) { $argumentName = $reflectionParameter->getName(); From 77c0dde85a3cc1358d7c779f0b7d43b9a84ddfb8 Mon Sep 17 00:00:00 2001 From: "Carlos Alberto B. Carucce" Date: Mon, 1 Jul 2024 13:21:29 -0300 Subject: [PATCH 2/2] fix style --- src/ServiceContainer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ServiceContainer.php b/src/ServiceContainer.php index e662c4c..a6ca560 100644 --- a/src/ServiceContainer.php +++ b/src/ServiceContainer.php @@ -120,8 +120,7 @@ public function has(string $id): bool private function createArguments( ReflectionMethod|ReflectionFunction $reflectionMethod, array $arguments = [] - ): array - { + ): array { foreach ($reflectionMethod->getParameters() as $reflectionParameter) { $argumentName = $reflectionParameter->getName();