Skip to content

Commit 628021a

Browse files
committed
PhpNamespace::addUse() simplified aliases generation
1 parent 5315b85 commit 628021a

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

src/PhpGenerator/PhpNamespace.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,12 @@ public function addUse(string $name, string $alias = null, string &$aliasOut = n
106106
$alias = Helpers::extractShortName($name);
107107
}
108108
if ($alias === null) {
109-
$path = explode('\\', $name);
109+
$base = Helpers::extractShortName($name);
110110
$counter = null;
111111
do {
112-
if (empty($path)) {
113-
$counter++;
114-
} else {
115-
$alias = array_pop($path) . $alias;
116-
}
117-
} while (isset($this->aliases[$alias . $counter]) && $this->aliases[$alias . $counter] !== $name);
118-
$alias .= $counter;
112+
$alias = $base . $counter;
113+
$counter++;
114+
} while (isset($this->aliases[$alias]) && $this->aliases[$alias] !== $name);
119115

120116
} elseif (isset($this->aliases[$alias]) && $this->aliases[$alias] !== $name) {
121117
throw new InvalidStateException(

tests/PhpGenerator/PhpNamespace.aliases.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ $namespace = new PhpNamespace('');
7676
$namespace->addUse('C');
7777
Assert::same('C', $namespace->simplifyName('C'));
7878
$namespace->addUse('Bar\C');
79-
Assert::same('BarC', $namespace->simplifyName('Bar\C'));
79+
Assert::same('C1', $namespace->simplifyName('Bar\C'));
8080

8181
$namespace = new PhpNamespace('');
8282
$namespace->addUse('Bar\C');
@@ -88,13 +88,13 @@ $namespace = new PhpNamespace('');
8888
$namespace->addUse('A');
8989
Assert::same('A', $namespace->simplifyName('A'));
9090
$namespace->addUse('Bar\A');
91-
Assert::same('BarA', $namespace->simplifyName('Bar\A'));
91+
Assert::same('A1', $namespace->simplifyName('Bar\A'));
9292

9393
$namespace = new PhpNamespace('Foo');
9494
$namespace->addUse('C');
9595
Assert::same('C', $namespace->simplifyName('C'));
9696
$namespace->addUse('Bar\C');
97-
Assert::same('BarC', $namespace->simplifyName('Bar\C'));
97+
Assert::same('C1', $namespace->simplifyName('Bar\C'));
9898
Assert::same('C', $namespace->simplifyName('Foo\C'));
9999
Assert::exception(function () use ($namespace) {
100100
$namespace->addUse('Foo\C');

0 commit comments

Comments
 (0)