Loader\Csv::finalize PHP Method

finalize() public static method

public static finalize ( )
    public static function finalize()
    {
        if (!file_exists('nodes.csv')) {
            return false;
        }
        fclose(static::$fp_rels);
        fclose(static::$fp_nodes);
        $config = \Exakat\Config::factory();
        $res = shell_exec(<<<SHELL

cd ./batch-import
java -server -Dfile.encoding=UTF-8 -Xmx4G -jar target/batch-import-jar-with-dependencies.jar {$config->neo4j_folder}/data/graph.db ../nodes.csv ../rels.csv 2>/dev/null
cd {$config->neo4j_folder}
./bin/neo4j restart
sleep 1

SHELL
);
        $context_options = array('http' => array('method' => 'GET', 'ignore_errors' => true, 'header' => <<<HEADER
Content-type: application/json
Accept: application/json
User-Agent: Exakat v 1.0

HEADER
));
        $context = stream_context_create($context_options);
        $config = \Exakat\Config::factory();
        $response = file_get_contents('http://' . $config->neo4j_host . ':' . $config->neo4j_port . '/db/data/', false, $context);
        if (strpos($response, 'NOT_FOUND') !== false) {
            $response = file_get_contents('http://' . $config->neo4j_host . ':' . $config->neo4j_port . '/db/data/', false, $context);
        }
        preg_match("/Importing (\\d+) Nodes/is", $res, $nodes);
        preg_match("/Importing (\\d+) Relationships/is", $res, $relations);
        $fnodes = -1;
        $fp = fopen('nodes.csv', 'r');
        while (fgetcsv($fp, 100000, "\t", '"')) {
            ++$fnodes;
        }
        fclose($fp);
        $frels = -1;
        $fp = fopen('rels.csv', 'r');
        while (fgetcsv($fp, 1000, "\t", '"')) {
            ++$frels;
        }
        fclose($fp);
        if ($fnodes != $nodes[1]) {
            display("Warning : didn't import enough nodes : {$fnodes} expected, {$nodes[1]} actually imported\n");
        } else {
            display("{$nodes[1]} nodes imported\n");
            display(number_format(filesize('nodes.csv') / 1024, 0) . " ko imported\n");
            unlink('nodes.csv');
        }
        if ($frels != $relations[1]) {
            display("Warning : didn't import enough relations : {$frels} expected, {$relations[1]} actually imported\n");
        } else {
            display("{$relations[1]} relations imported\n");
            unlink('rels.csv');
        }
        return true;
    }