@@ -138,15 +138,53 @@ protected function findAllCalls(array $ast): array
138
138
139
139
protected function findCalls (array $ ast , string $ class , ?string $ nodeNameProp , array $ names ): array
140
140
{
141
+ // $result = [];
142
+ //
143
+ // $nodeFinder = new NodeFinder();
144
+ //
145
+ // $nodes = $nodeFinder->findInstanceOf($ast, $class);
146
+ //
147
+ // foreach ($nodes as $node) {
148
+ // $result[] = $node->jsonSerialize();
149
+ // }
150
+ //
151
+ // file_put_contents(getcwd() . '/test3.json', json_encode($result, JSON_PRETTY_PRINT));
152
+ // die();
153
+
154
+ // return [];
155
+
141
156
$ nodeFinder = new NodeFinder ();
142
157
143
158
$ nodes = $ nodeFinder ->findInstanceOf ($ ast , $ class );
144
159
160
+
145
161
if (! $ nodeNameProp ) {
146
162
return $ nodes ;
147
163
}
148
164
149
165
return array_filter ($ nodes , function (Node $ node ) use ($ names , $ nodeNameProp ) {
166
+ $ name = '' ;
167
+
168
+ if ($ node instanceof FuncCall) {
169
+ $ name = $ node ->name ->parts [0 ];
170
+ }
171
+
172
+ if ($ node instanceof Node \Expr \StaticCall) {
173
+ $ name = $ node ->name ->name ;
174
+ }
175
+
176
+ if ($ node instanceof Node \Expr \New_) {
177
+ $ name = $ node ->class ->name ->name ;
178
+ }
179
+
180
+ if ($ node instanceof Node \Expr \Assign) {
181
+ $ name = $ node ->var ->name ;
182
+ }
183
+
184
+ if (!empty ($ name )) {
185
+ return in_array ($ name , $ names , true );
186
+ }
187
+
150
188
if (isset ($ node ->{$ nodeNameProp }->name )) {
151
189
return in_array ($ node ->{$ nodeNameProp }->name , $ names , true );
152
190
}
@@ -183,7 +221,7 @@ protected function traverseNodes(FileSearchResults $results, array $nodes): void
183
221
{
184
222
$ traverser = new NodeTraverser ();
185
223
186
- $ traverser ->addVisitor (new FunctionCallVisitor ($ results ));
224
+ $ traverser ->addVisitor (new FunctionCallVisitor ($ results, $ this -> functions ));
187
225
188
226
$ traverser ->traverse ($ nodes );
189
227
}
0 commit comments