Jig

Класс Jig обеспечивает простой способ хранения массивов данных в flat файлах ASCII.

Пространство имен: \DB

Расположение файла:lib/db/jig.php

Конструктор

$db = new \DB\Jig ( string $dir [, int $format = \DB\Jig::FORMAT_JSON ] );

$dir определяет имя каталога хранения. Путь гоут быть как абсолютными так и относительными.

$format определяет формат хранения. Возможные значения:

  • \DB\Jig::FORMAT_JSON в котором хранятся данные в формате JSON.
  • \DB\Jig::FORMAT_Serialized который сериализует данные. В зависимости от значения системной переменной SERIALIZER данные хранятся с использованием стандартного формата сериализации PHP, igbinary или JSON.

$dir, Как и любое имя каталога F3, оно должно заканчиваться косой чертой!

Каталог создается автоматически, если еще не существует.

Методы

read

Чтение из файла базы данных Jig

array read ( string $file )

Этот метод извлекает данные, хранящиеся в заданном файле базы данных Jig.

Например:

$data = $db->read('team');
echo $data['Robert']['birth']; // 82 (see below)

write

Запись в файл базы данных Jig

int|FALSE write ( string $file, array $data )

Этот метод записывает данные в файл базы данных Jig и возвращает количество байтов, которые были записаны в файл или FALSE в случае сбоя.

Например:

$db=new \DB\Jig('jig/',\DB\Jig::FORMAT_Serialized);
$team=array(
  'Jimmy'   => array('birth'=>86,'instr'=>'guitars'),
  'Robert'  => array('birth'=>82,'instr'=>'vocals'),
  'John'    => array('birth'=>88,'instr'=>'drums'),
  'Anna'    => array(            'instr'=>'keyboards'),
);
echo $db->write('team',$team); // outputs 231 (int)

drop

Очистка базы данных

int drop ( )

Удаляет все данные, хранящиеся в каталоге хранилища .

Пример:

$db=new \DB\Jig('jig/'); // jig/ directory is empty
$db->write('file1.dat',$data1); // jig/ contains file1.dat
$db->write('file2.dat',$data2); // jig/ contains file1.dat and file2.dat
$db->drop(); // jig/ directory is now empty

dir

Вернуть каталог БД

string dir ( )

Фактически, просто возвращает значение $dir, которое было указано конструктору .

jot

Создание записи в журнале

null jot ( string $frame )

Добавьте данные $frame во внутренний журнал. Записи имеют префикс даты в формате RFC-2822.

log

Возврат результатов профилировщика Jig

string log ( )

Пример:

$db->jot('Merry Christmas');
echo $db->log();  // "Wed, 25 Dec 2013 08:27:58 +0100 Merry Christmas"

uuid

Вернуть хэш соединения UUID (Universally Unique IDentifier)

string uuid ( )

Пример:

echo $db->uuid();  // e.g. "0dso6nqcdhr"  (string, length 11)

Применение

База данных Jig не предназначена для непосредственного использования. Она создана для работы с помощбю Mapper. Чтобы инициализировать базу данных, просто добавьте несколько записей с помощью Mapper, например:

$mapper = new \DB\Jig\Mapper($db, $file);
$mapper->username = 'userA';
$mapper->password = '57d82jg05';
$mapper->save();
$mapper->reset();
$mapper->username = 'userB';
$mapper->password = 'kbjd94973';
$mapper->save();

Если вы использовали Jig DB по умолчанию в стиле JSON, результирующая файловая структура json db выглядит следующим образом:

{
    "548723b9f06c78.10153217": {
        "username": "userA",
        "password": "57d82jg05"       
    },
    "54f9c763934745.48648465": {
        "username": "userB",
        "password": "kbjd94973"       
    }
}
Печать/экспорт