This commit is contained in:
2023-08-03 14:08:16 +08:00
parent 3611b87817
commit 0a171da047
2 changed files with 17 additions and 15 deletions
+4 -14
View File
@@ -100,25 +100,15 @@ class Container implements ContainerInterface
/**
* @param string $id
* @return void
* @return object
* @throws ReflectionException
*/
public function parse(string $id): void
public function parse(string $id): object
{
if (isset($this->_singletons[$id])) {
return;
}
$object = $this->make($id);
$methods = $this->getReflectionClass($id);
foreach ($methods->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
if ($method->isStatic() || $method->getDeclaringClass()->getName() != $id) {
continue;
}
$attributes = $method->getAttributes();
foreach ($attributes as $attribute) {
$attribute->newInstance()->dispatch($object, $method->getName());
}
return $this->_singletons[$id];
}
return $this->make($id);
}