Newscoop\Installer\Services\DatabaseService::splitSQL PHP Метод

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

Split big sql to array fo queries
private splitSQL ( string $sqlFile ) : array
$sqlFile string
Результат array
    private function splitSQL($sqlFile)
    {
        $sqlFile = trim($sqlFile);
        $sqlFile = preg_replace("/\n\\#[^\n]*/", '', "\n" . $sqlFile);
        $buffer = array();
        $return = array();
        $inString = false;
        for ($i = 0; $i < strlen($sqlFile) - 1; $i++) {
            if ($sqlFile[$i] == ";" && !$inString) {
                $return[] = substr($sqlFile, 0, $i);
                $sqlFile = substr($sqlFile, $i + 1);
                $i = 0;
            }
            if ($inString && $sqlFile[$i] == $inString && $buffer[1] != "\\") {
                $inString = false;
            } elseif (!$inString && ($sqlFile[$i] == '"' || $sqlFile[$i] == "'") && (!isset($buffer[0]) || $buffer[0] != "\\")) {
                $inString = $sqlFile[$i];
            }
            if (isset($buffer[1])) {
                $buffer[0] = $buffer[1];
            }
            $buffer[1] = $sqlFile[$i];
        }
        if (!empty($sqlFile)) {
            $return[] = $sqlFile;
        }
        return $return;
    }