Lsrur\Inspector\Collectors\BaseCollector::getSourceCode PHP Method

getSourceCode() protected method

Extract source code file
protected getSourceCode ( array $files ) : array
$files array
return array
    protected function getSourceCode($files)
    {
        for ($j = 0; $j < count($files); $j++) {
            $src = [];
            $txt = '';
            if (isset($files[$j]['file'])) {
                $sourceFile = $files[$j]['file'];
                $fromLine = $files[$j]['line'] - 3;
                $toLine = $fromLine + 6;
                $i = 0;
                $handle = fopen($sourceFile, "r");
                if ($handle) {
                    $src[] = '<?php' . PHP_EOL;
                    while (($line = fgets($handle)) !== false) {
                        $line = str_replace("\r\n", "\n", $line);
                        $line = str_replace("\r", "\n", $line);
                        $i++;
                        if ($i >= $fromLine && $i <= $toLine) {
                            $txt .= $i . ':' . $line;
                            if ($i == $files[$j]['line']) {
                                $src[] = '-@' . $i . ':' . substr($line, 0, -1) . '@-';
                            } else {
                                $src[] = $i . ':' . $line;
                            }
                        }
                    }
                    fclose($handle);
                    $src = highlight_string(implode("", $src), true);
                    $src = str_replace('-@', '<div style="background-color:#FFDFD8 !important">', $src);
                    $src = str_replace('@-', '</div>', $src);
                    $src = str_replace('&lt;?php<br />', '', $src);
                    $src = str_replace('\\n', '', $src);
                    $files[$j]['src'] = $src;
                    $files[$j]['source'] = $txt;
                    $files[$j]['fileName'] = '..' . substr($files[$j]['file'], strlen(base_path()));
                    $files[$j]['tag'] = strpos($files[$j]['file'], app_path()) === false ? 'vendor' : 'my code';
                }
            }
        }
        return $files;
    }