33namespace Parser ;
44
55use Entity \FQN ;
6- use Entity \FQCN ;
76use Entity \Node \Uses ;
87use Utils \PathResolver ;
98use PhpParser \Parser AS ASTGenerator ;
@@ -30,25 +29,21 @@ public function __construct(
3029 $ this ->astPool = [];
3130 $ this ->logger = $ logger ;
3231 }
33- public function parseFile (FQN $ fqcn , $ file , $ createCache =true ){
32+ public function parseFile ($ file , Uses $ uses = null , $ createCache =true ){
3433 $ file = $ this ->path ->getAbsolutePath ($ file );
3534 $ content = $ this ->path ->read ($ file );
36- return $ this ->parseContent ($ fqcn , $ file , $ content , $ createCache );
35+ return $ this ->parseContent ($ file , $ content , $ uses , $ createCache );
3736 }
38- public function parseContent (FQN $ fqcn , $ file , $ content , $ createCache =true ){
37+ public function parseContent ($ file , $ content , Uses $ uses = null , $ createCache =true ){
3938 if ($ createCache ){
4039 $ hash = hash ('md5 ' , $ content );
4140 if (!array_key_exists ($ file , $ this ->astPool )){
4241 $ this ->astPool [$ file ] = [0 ,0 ];
4342 }
4443 list ($ oldHash , $ ast ) = $ this ->astPool [$ file ];
4544 }
46- if ($ fqcn instanceof FQCN ){
47- $ uses = new Uses ($ this ->parseFQCN ($ fqcn ->getNamespace ()));
48- }
49- else {
50- $ uses = new Uses ($ fqcn );
51- $ fqcn = new FQCN ('' , $ fqcn ->getParts ());
45+ if (!$ uses instanceof Uses){
46+ $ uses = new Uses (new FQN );
5247 }
5348 $ this ->setUses ($ uses );
5449 $ this ->setFileInfo ($ uses , $ file );
@@ -77,9 +72,13 @@ public function parseContent(FQN $fqcn, $file, $content, $createCache=true){
7772 return $ nodes ;
7873 }
7974 public function setUses (Uses $ uses ){
75+ $ this ->uses = $ uses ;
8076 $ this ->useParser ->setUses ($ uses );
8177 $ this ->namespaceParser ->setUses ($ uses );
8278 }
79+ public function getUses (){
80+ return $ this ->uses ;
81+ }
8382 public function parseFQCN ($ fqcn ){
8483 return $ this ->useParser ->parseFQCN ($ fqcn );
8584 }
@@ -121,4 +120,5 @@ protected function setFileInfo(Uses $uses, $file){
121120 /** @var NamespaceParser */
122121 private $ namespaceParser ;
123122 private $ useParser ;
123+ private $ uses ;
124124}
0 commit comments