File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed
Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -114,6 +114,14 @@ public function getName(): ?string
114114 }
115115
116116
117+ public function getFullName (): ?string
118+ {
119+ return $ this ->name && ($ namespace = $ this ->namespace ?->getName())
120+ ? $ namespace . '\\' . $ this ->name
121+ : $ this ->name ;
122+ }
123+
124+
117125 public function isClass (): bool
118126 {
119127 return $ this instanceof ClassType;
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ /**
4+ * Test: ClassLike::getFullName()
5+ */
6+
7+ declare (strict_types=1 );
8+
9+ use Nette \PhpGenerator \ClassType ;
10+ use Nette \PhpGenerator \PhpNamespace ;
11+ use Tester \Assert ;
12+
13+ require __DIR__ . '/../bootstrap.php ' ;
14+
15+
16+ // class without namespace
17+ $ class = new ClassType ('Demo ' );
18+ Assert::same ('Demo ' , $ class ->getFullName ());
19+
20+
21+ // class with namespace
22+ $ class = new ClassType ('User ' , new PhpNamespace ('App\Model ' ));
23+ Assert::same ('App\Model\User ' , $ class ->getFullName ());
24+
25+
26+ // class with empty namespace
27+ $ class = new ClassType ('GlobalClass ' , new PhpNamespace ('' ));
28+ Assert::same ('GlobalClass ' , $ class ->getFullName ());
29+
30+
31+ // anonymous class (no name)
32+ $ class = new ClassType (null );
33+ Assert::null ($ class ->getFullName ());
You can’t perform that action at this time.
0 commit comments