6
6
7
7
namespace Magento \Framework \Reflection ;
8
8
9
- use Doctrine \Common \Annotations \TokenParser ;
10
9
use Magento \Framework \Exception \SerializationException ;
11
10
use Magento \Framework \Phrase ;
12
11
use Zend \Code \Reflection \ClassReflection ;
@@ -567,13 +566,22 @@ public function resolveFullyQualifiedClassName(ClassReflection $sourceClass, str
567
566
unset($ e );
568
567
}
569
568
570
- // Resolve fully qualified name
569
+ // Extract alias mapping
571
570
$ sourceFileName = $ sourceClass ->getDeclaringFile ();
572
- $ source = $ sourceFileName ->getContents ();
573
- $ parser = new TokenParser ($ source );
571
+ $ aliases = [];
572
+ foreach ($ sourceFileName ->getUses () as $ use ) {
573
+ if ($ use ['as ' ] !== null ) {
574
+ $ aliases [$ use ['as ' ]] = $ use ['use ' ];
575
+ } else {
576
+ $ pos = strrpos ($ use ['use ' ], '\\' );
577
+
578
+ $ aliasName = substr ($ use ['use ' ], $ pos + 1 );
579
+ $ aliases [$ aliasName ] = $ use ['use ' ];
580
+ }
581
+ }
574
582
583
+ // Resolve FQN
575
584
$ namespace = $ sourceClass ->getNamespaceName ();
576
- $ aliases = $ parser ->parseUseStatements ($ namespace );
577
585
578
586
$ pos = strpos ($ typeName , '\\' );
579
587
if ($ pos === 0 ) {
@@ -588,7 +596,6 @@ public function resolveFullyQualifiedClassName(ClassReflection $sourceClass, str
588
596
$ partialClassName = substr ($ typeName , $ pos );
589
597
}
590
598
591
- $ namespacePrefix = strtolower ($ namespacePrefix );
592
599
if (isset ($ aliases [$ namespacePrefix ])) {
593
600
return $ aliases [$ namespacePrefix ] . $ partialClassName . $ arraySuffix ;
594
601
}
0 commit comments