diff --git a/src/Symfony/Contracts/Service/ServiceLocatorTrait.php b/src/Symfony/Contracts/Service/ServiceLocatorTrait.php index 4ec6eb4276cf1..085f9bf1358e6 100644 --- a/src/Symfony/Contracts/Service/ServiceLocatorTrait.php +++ b/src/Symfony/Contracts/Service/ServiceLocatorTrait.php @@ -63,6 +63,10 @@ public function get($id) $this->loading[$id] = $id; try { + if (!\is_callable($this->factories[$id])) { + return $this->factories[$id]; + } + return $this->factories[$id]($this); } finally { unset($this->loading[$id]);