Skip to content

Commit ca0486c

Browse files
committed
added ClassLike::getFullName()
1 parent 783e948 commit ca0486c

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

src/PhpGenerator/ClassLike.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ public function getName(): ?string
111111
}
112112

113113

114+
public function getFullName(): ?string
115+
{
116+
return $this->name && ($namespace = $this->namespace?->getName())
117+
? $namespace . '\\' . $this->name
118+
: $this->name;
119+
}
120+
121+
114122
public function isClass(): bool
115123
{
116124
return $this instanceof ClassType;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php declare(strict_types=1);
2+
3+
/**
4+
* Test: ClassLike::getFullName()
5+
*/
6+
7+
use Nette\PhpGenerator\ClassType;
8+
use Nette\PhpGenerator\PhpNamespace;
9+
use Tester\Assert;
10+
11+
require __DIR__ . '/../bootstrap.php';
12+
13+
14+
// class without namespace
15+
$class = new ClassType('Demo');
16+
Assert::same('Demo', $class->getFullName());
17+
18+
19+
// class with namespace
20+
$class = new ClassType('User', new PhpNamespace('App\Model'));
21+
Assert::same('App\Model\User', $class->getFullName());
22+
23+
24+
// class with empty namespace
25+
$class = new ClassType('GlobalClass', new PhpNamespace(''));
26+
Assert::same('GlobalClass', $class->getFullName());
27+
28+
29+
// anonymous class (no name)
30+
$class = new ClassType(null);
31+
Assert::null($class->getFullName());

0 commit comments

Comments
 (0)