Storm\Drivers\Fluent\Object\Functional\Implementation\File\Reader::LoadSourceLines PHP Метод

LoadSourceLines() приватный Метод

private LoadSourceLines ( ReflectionFunctionAbstract $Reflection )
$Reflection ReflectionFunctionAbstract
    private function LoadSourceLines(\ReflectionFunctionAbstract $Reflection)
    {
        if (!$Reflection->isUserDefined()) {
            throw new Functional\FunctionException('Cannot parse function: Function must be user defined');
        }
        $FileName = $Reflection->getFileName();
        if (!file_exists($FileName)) {
            throw new Functional\FunctionException('Cannot parse function: Function does not belong to a valid file (cannot be eval\'d code)');
        }
        $SourceLines = [];
        $File = new \SplFileObject($Reflection->getFileName());
        $StartLine = $Reflection->getStartLine() - 2;
        $File->seek($StartLine);
        $EndLine = $Reflection->getEndLine() - 2;
        while ($File->key() <= $EndLine) {
            $SourceLines[] = trim($File->fgets());
        }
        unset($File);
        $FirstLine =& $SourceLines[0];
        $FirstLine = substr($FirstLine, stripos($FirstLine, 'function'));
        $LastLine =& $SourceLines[count($SourceLines) - 1];
        $LastLine = substr($LastLine, 0, strrpos($LastLine, '}') + 1);
        return array_filter($SourceLines);
    }