query); $data = get_defined_vars(); CODE_SAMPLE , <<<'CODE_SAMPLE' parse_str($this->query, $result); $data = $result; CODE_SAMPLE )]); } /** * @return array> */ public function getNodeTypes() : array { return [FuncCall::class]; } /** * @param FuncCall $node */ public function refactor(Node $node) : ?Node { if (!$this->isName($node, 'parse_str')) { return null; } if (isset($node->args[1])) { return null; } $resultVariable = new Variable('result'); $node->args[1] = new Arg($resultVariable); $currentStmt = $this->betterNodeFinder->resolveCurrentStatement($node); if (!$currentStmt instanceof Stmt) { return null; } $nextExpression = $currentStmt->getAttribute(AttributeKey::NEXT_NODE); if (!$nextExpression instanceof Node) { return null; } $this->traverseNodesWithCallable($nextExpression, function (Node $node) use($resultVariable) : ?Variable { if (!$node instanceof FuncCall) { return null; } if (!$this->isName($node, 'get_defined_vars')) { return null; } return $resultVariable; }); return $node; } }