Převod NEON souborů

Ukládání formátu NEON do db a zpět

Pro práci s formátem NEON používám komponentu z frameworku Nette.

use Nette\Neon\Neon;

Uložení struktury NEON do databáze:

$data = Neon::decode(file_get_contents('cesta_k_souboru.neon')); foreach($data as $key => $item) { buildSQL($item, $key); } function buildSQL($item, $key) { if (!is_array($item)) { dibi::query("INSERT INTO db_table (code, value) VALUES (%s, %s)", $key, $item); } else { foreach($item as $key2 => $item2) { $keyPom = $key . '.' . $key2; buildSQL($item2, $keyPom); } } }

Výpis do formátu NEON zpět z databáze:

function buildArray(&$arr, $path, $value) { $keys = explode('.', $path); foreach ($keys as $key) { $arr = &$arr[$key]; } $arr = $value; } $result = dibi::query("SELECT code, value FROM db_table")->fetchPairs(); $arr = []; foreach($result as $key => $value) { buildArray($arr, $key, $value); } echo Neon::encode($arr, Neon::BLOCK);

PHP únor 2019