@@ -200,6 +200,16 @@ public function getNamespaces(): array
200200 return array_keys ($ this ->namespaces );
201201 }
202202
203+ public function addNamespace (string $ namespace ): void
204+ {
205+ $ this ->namespaces [$ namespace ] = $ namespace ;
206+ // add sub-namespaces
207+
208+ while ($ namespace = substr ($ namespace , 0 , (int ) strrpos ($ namespace , '\\' ))) {
209+ $ this ->namespaces [$ namespace ] = $ namespace ;
210+ }
211+ }
212+
203213 /**
204214 * @return array<string,FunctionReflection>
205215 */
@@ -280,6 +290,7 @@ public function addFunction(FunctionReflection $fun): void
280290 {
281291 $ this ->functions [$ fun ->getNamespace ()][$ fun ->getName ()] = $ fun ;
282292 $ fun ->setProject ($ this );
293+ $ this ->addNamespace ($ fun ->getNamespace () ?? '' );
283294 }
284295
285296 public function addClass (ClassReflection $ class ): void
@@ -646,12 +657,7 @@ protected function updateCache(ClassReflection $class)
646657 {
647658 $ name = $ class ->getName ();
648659
649- $ this ->namespaces [$ class ->getNamespace () ?? '' ] = $ class ->getNamespace () ?? '' ;
650- // add sub-namespaces
651- $ namespace = $ class ->getNamespace () ?? '' ;
652- while ($ namespace = substr ($ namespace , 0 , (int ) strrpos ($ namespace , '\\' ))) {
653- $ this ->namespaces [$ namespace ] = $ namespace ;
654- }
660+ $ this ->addNamespace ($ class ->getNamespace () ?? '' );
655661
656662 if ($ class ->isException ()) {
657663 $ this ->namespaceExceptions [$ class ->getNamespace () ?? '' ][$ name ] = $ class ;
0 commit comments