@@ -183,12 +183,11 @@ private function processClass(Class_ $node): void
183183 {
184184 $ name = $ node ->name ->toString ();
185185 $ namespacedName = $ node ->namespacedName ->toString ();
186- $ namespace = str_replace ($ name , '' , $ namespacedName );
187186
188187 $ this ->classes [$ namespacedName ] = [
189188 'name ' => $ name ,
190189 'namespacedName ' => $ namespacedName ,
191- 'namespace ' => $ namespace ,
190+ 'namespace ' => $ this -> namespace ( $ namespacedName , $ name ) ,
192191 'startLine ' => $ node ->getStartLine (),
193192 'endLine ' => $ node ->getEndLine (),
194193 'methods ' => [],
@@ -199,12 +198,11 @@ private function processTrait(Trait_ $node): void
199198 {
200199 $ name = $ node ->name ->toString ();
201200 $ namespacedName = $ node ->namespacedName ->toString ();
202- $ namespace = str_replace ($ name , '' , $ namespacedName );
203201
204202 $ this ->traits [$ namespacedName ] = [
205203 'name ' => $ name ,
206204 'namespacedName ' => $ namespacedName ,
207- 'namespace ' => $ namespace ,
205+ 'namespace ' => $ this -> namespace ( $ namespacedName , $ name ) ,
208206 'startLine ' => $ node ->getStartLine (),
209207 'endLine ' => $ node ->getEndLine (),
210208 'methods ' => [],
@@ -226,7 +224,6 @@ private function processMethod(ClassMethod $node): void
226224
227225 $ parentName = $ parentNode ->name ->toString ();
228226 $ parentNamespacedName = $ parentNode ->namespacedName ->toString ();
229- $ namespace = str_replace ($ parentName , '' , $ parentNamespacedName );
230227
231228 if ($ parentNode instanceof Class_) {
232229 $ storage = &$ this ->classes ;
@@ -238,7 +235,7 @@ private function processMethod(ClassMethod $node): void
238235 $ storage [$ parentNamespacedName ] = [
239236 'name ' => $ parentName ,
240237 'namespacedName ' => $ parentNamespacedName ,
241- 'namespace ' => $ namespace ,
238+ 'namespace ' => $ this -> namespace ( $ parentNamespacedName , $ parentName ) ,
242239 'startLine ' => $ parentNode ->getStartLine (),
243240 'endLine ' => $ parentNode ->getEndLine (),
244241 'methods ' => [],
@@ -263,16 +260,27 @@ private function processFunction(Function_ $node): void
263260
264261 $ name = $ node ->name ->toString ();
265262 $ namespacedName = $ node ->namespacedName ->toString ();
266- $ namespace = str_replace ($ name , '' , $ namespacedName );
267263
268264 $ this ->functions [$ namespacedName ] = [
269265 'name ' => $ name ,
270266 'namespacedName ' => $ namespacedName ,
271- 'namespace ' => $ namespace ,
267+ 'namespace ' => $ this -> namespace ( $ namespacedName , $ name ) ,
272268 'signature ' => $ this ->signature ($ node ),
273269 'startLine ' => $ node ->getStartLine (),
274270 'endLine ' => $ node ->getEndLine (),
275271 'ccn ' => $ this ->cyclomaticComplexity ($ node ),
276272 ];
277273 }
274+
275+ private function namespace (string $ namespacedName , string $ name ): string
276+ {
277+ return \trim (
278+ str_replace (
279+ $ name ,
280+ '' ,
281+ $ namespacedName
282+ ),
283+ '\\'
284+ );
285+ }
278286}
0 commit comments