File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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;
Original file line number Diff line number Diff line change 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 ());
You can’t perform that action at this time.
0 commit comments