Skip to content
This repository was archived by the owner on Feb 6, 2020. It is now read-only.

Commit 149ed56

Browse files
committed
#83 - fix for issue #83 - avoiding infinite loops by skipping alias resolution for already visited aliases
1 parent 7c27f4a commit 149ed56

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/ServiceManager.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -569,10 +569,15 @@ private function resolveInitializers(array $initializers)
569569
private function resolveAliases(array $aliases)
570570
{
571571
foreach ($aliases as $alias => $service) {
572-
$name = $alias;
572+
// avoiding infinite loops by removing already resolved aliases
573+
$currentAliases = $this->aliases;
574+
$name = $alias;
573575

574-
while (isset($this->aliases[$name])) {
575-
$name = $this->aliases[$name];
576+
while (isset($currentAliases[$name])) {
577+
$oldName = $name;
578+
$name = $currentAliases[$name];
579+
580+
unset($currentAliases[$oldName]);
576581
}
577582

578583
$this->resolvedAliases[$alias] = $name;

0 commit comments

Comments
 (0)