Skip to content

Commit 3d211b2

Browse files
committed
Fixed class name bug
1 parent c1280c8 commit 3d211b2

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

lib/Adapter/Simple/SimpleClassToFile.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ public function __construct(string $cwd)
2828
public function classToFileCandidates(ClassName $className): FilePathCandidates
2929
{
3030
$candidates = [];
31-
foreach (glob(sprintf(
31+
$pattern = sprintf(
3232
'%s/**/%s.php',
3333
$this->cwd,
3434
$className->name()
35-
)) as $phpFile) {
35+
);
36+
foreach (glob($pattern) as $phpFile) {
3637
if (ClassName::fromString(
3738
$this->classScanner->getClassNameFromFile($phpFile)
3839
) == $className) {

lib/Domain/ClassName.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ public function namespace()
3030

3131
public function name()
3232
{
33-
return substr($this->fullyQualifiedName, strrpos($this->fullyQualifiedName, '\\') + 1);
33+
$pos = strrpos($this->fullyQualifiedName, '\\');
34+
if (false === $pos) {
35+
return $this->fullyQualifiedName;
36+
}
37+
return substr($this->fullyQualifiedName, $pos + 1);
3438
}
3539

3640
public function beginsWith($prefix)

tests/Unit/ClassNameTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,16 @@ public function provideBeginsWith()
4141
],
4242
];
4343
}
44+
45+
public function testName()
46+
{
47+
$class = ClassName::fromString('Foobar\\Barfoo');
48+
$this->assertEquals('Barfoo', $class->name());
49+
}
50+
51+
public function testNameShort()
52+
{
53+
$class = ClassName::fromString('Barfoo');
54+
$this->assertEquals('Barfoo', $class->name());
55+
}
4456
}

0 commit comments

Comments
 (0)