/** * 将结果集转为前端的模式 * @param ResultContext $resContext */ function convertResults($resContext) { $ret = array(); $resArr = $resContext->getResArr(); foreach ($resArr as $record) { $item = array(); $record = $record->getRecord(); $item['type'] = $record['type']; $item['node_path'] = $record['node_path']; $item['var_path'] = $record['var_path']; //整理node代码 $node = $record['node']; $node_item = array(); if ($node instanceof Symbol) { $node_start = $node->getValue()->getAttribute('startLine'); $node_end = $node->getValue()->getAttribute('endLine'); } else { $node_start = $node->getAttribute('startLine'); $node_end = $node->getAttribute('endLine'); } $node_item['line'] = $node_start . "|" . $node_end; $node_item['code'] = FileUtils::getCodeByLine($record['node_path'], $node_start, $node_end); $item['node'] = $node_item; //整理var代码 $var = $record['var']; $var_item = array(); if ($var instanceof Symbol) { $var_start = $var->getValue()->getAttribute('startLine'); $var_end = $var->getValue()->getAttribute('endLine'); } elseif (is_string($var)) { $var_start = $node_start; $var_end = $node_end; } else { $var_start = $var->getAttribute('startLine'); $var_end = $var->getAttribute('endLine'); } $var_item['line'] = $var_start . "|" . $var_end; $var_item['code'] = FileUtils::getCodeByLine($record['var_path'], $var_start, $var_end); $item['var'] = $var_item; array_push($ret, $item); } return $ret; }