PHP code example of pllano / json-db

1. Go to this page and download the library: Download pllano/json-db library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

pllano / json-db example snippets


(new \jsonDB\Db(__DIR__ . '/../../_db_/'))->run();

// Или так
$_db = __DIR__ . '/../../_db_/';
$db = new Db($_db);
$db->run();

use jsonDB\Db;
$_db = __DIR__ . '/../../_db_/'; // Указываем директорию где будет храниться json db

$db = new Db($_db);
$db->setPrefixTable("sf"); // Установить префикс таблиц
$db->setPrefixColumn("jhbg5r"); // Установить префикс полей
$db->setCached(false); // Включаем кеширование true|false
$db->setCacheLifetime(60); // Время жизни кеша 60 минут
$db->setTemp(false); // Используем очередь true|false
$db->setApi(false); // Если работаем как основная база устанавливаем false
$db->setStructure(""); // URL к файлу структуры db.json (Не обезательно)
$db->setPublicKey(""); // Установить public_key (Не обезательно)
$db->setCrypt(false); // Шифруем таблицы true|false
$db->setCryptKey(file_get_contents($_db . 'core/key_db.txt', true)); // Загружаем ключ шифрования
$db->run();

use jsonDB\Database as jsonDb;

$arr = array(
    'id' => 'integer',
    'name' => 'string',
    'название_поля' => 'тип данных'
);

jsonDb::create('resource_name', $arr);

use jsonDB\Database as jsonDb;

jsonDb::remove('resource_name');

use jsonDB\Database as jsonDb;

jsonDb::table('resource_name')->delete();

use jsonDB\Validate;
use jsonDB\dbException;

try{
    Validate::table('resource_name')->exists();
} catch(dbException $e){
    // Ресурс не существует
}

use jsonDB\Database as jsonDb;

$row = jsonDb::table('resource_name');
$row->name = 'Ivan';
$row->save();

use jsonDB\Database as jsonDb;
 
$row = jsonDb::table('resource_name');
$row->num = $num;
$row->save();

use jsonDB\Database as jsonDb;

echo jsonDb::table('resource_name')->where('name', '=', 'Ivan')->findAll();
// или по id
echo jsonDb::table('resource_name')->where('id', '=', '10')->findAll();

use jsonDB\Database as jsonDb;

$row = jsonDb::table('resource_name')->find(10);
$row->name = 'Andrey';
$row->save();

use jsonDB\Database as jsonDb;

jsonDb::table('resource_name')->find(10)->delete();
 php	
use GuzzleHttp\Client as Guzzle;

$public_key = $config['settings']['db']['public_key']; // Взять key из конфигурации `https://example.com/_12345_/index.php`

$resource = 'db';
$id = '1';

// $uri = 'https://example.com/_12345_/'.$resource.'?public_key='.$public_key;
$uri = 'https://example.com/_12345_/'.$resource.'/'.$id.'?public_key='.$public_key;

$client = new Guzzle();
$resp = $client->request('GET', $uri);
$get_body = $resp->getBody();

// Чистим все что не нужно, иначе json_decode не сможет конвертировать json в массив
for ($i = 0; $i <= 31; ++$i) {$get_body = str_replace(chr($i), "", $get_body);}
$get_body = str_replace(chr(127), "", $get_body);
if (0 === strpos(bin2hex($get_body), 'efbbbf')) {$get_body = substr($get_body, 3);}

$response = json_decode($get_body, true);

if (isset($response["headers"]["code"])) {
    if ($response["headers"]["code"] == 200) {
        $count = count($response["body"]["items"]);
        if ($count >= 1) {
            foreach($response["body"]["items"] as $item)
            {
                // Если $value object переводим в array
                $item = is_array($value["item"]) ? $item["item"] : (array)$value["item"];
                // Получаем данные
                print_r($item["name"]);
            }
        }
    }
}