2017 © Pedro PelĂĄez
 

library jisly

Light NoSQL database, JSON file data storing

image

r0mdau/jisly

Light NoSQL database, JSON file data storing

  • Saturday, March 24, 2018
  • by r0mdau
  • Repository
  • 1 Watchers
  • 1 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 14 % Grown

The README.md

Jisly

PHPUnit Coverage Status Known Vulnerabilities, (*1)

The smallest PHP lightweight NoSQL database library, flat file JSON., (*2)

The main goal of Jisly is to allow you to quickly start your project with the possibility of memory and flat-file storage using a NoSQL (document oriented) query syntax., (*3)

Version française ici, (*4)

Concurrent access is managed !, (*5)

How to install and load

This lib can be found on Packagist, (*6)

composer require r0mdau/jisly:^2.0

Loading the library

Jisly relies on the PSR-4 specification for autoloading classes from file paths., (*7)

use Jisly\JislyCollection;

public function saveCart(): void {
    $jisly = new JislyCollection("/tmp/data", "cart");
    ...
}

Definitions

  1. Each document has a unique identifier called _rid.
  2. Each collection is physically represented by a file.
  3. The files are stored in a single working directory. The Jisly class is instantiated with the path to this directory as a parameter.
  4. Each time you CRUD something, all datas are stored in memory.
  5. And datas are saved on filesystem.

Examples of use

Initialization of the class

$directory contains the path to the directory where the files (=collections) of the data model will be stored., (*8)

$database = new Jisly($directory);

To access a collection

$name contains the name of the collection we want to request. Example : user., (*9)

Returns an object JislyCollection :, (*10)

$database->collection($name);

Warning : each first time you access a collection, all datas are stored in memory., (*11)

To call a collection

PREAMBLE : The Insert, Update, Delete methods return a boolean, true if the action went well, false otherwise., (*12)

Insert method

Insert the array into the specified collection in JSON format and assigns a unique _rid identifier to the document if it has not been specified :, (*13)

$successBool = $database->collection($file)->insert(
  [
    "name" => "Lucas",
    "firstname" => "Georges"
  ]
);

Delete method

You must first find all documents to delete to provide the _rid attribute to the delete method., (*14)

Remove the only document in the collection which has the value $rid to the attribute _rid :, (*15)

$successBool = $database->collection($file)->delete($rid);

Select method

Returns all documents in the collection in an array() of objects :, (*16)

$results = $database->collection($file)->find();

Return all documents in the collection that have a name attribute with Lucas as value in an array() of objects :, (*17)

$results = $database->collection($file)->find(
  [
    "name" => "Lucas"
  ]
);

Return the first document that as a name attribute with 19 as an object value :, (*18)

$result = $database->collection($file)->findOne(
  [
    "name" => 19
  ]
);

Logical operators OR and AND

These two logical operators can be used on find and findOne methods., (*19)

If no logical operator is provided, OR is used., (*20)

Return all documents in the collection that have a name attribute with Lucas OR a firstname attribute with Georges as values in an array() of objects :, (*21)

$result = $database->collection($file)->find(
  [
    "firstname" => "Georges",
    "name" => "Lucas"
  ], JislyCollection::LOGICAL_OR
);

Return the first document in the collection that have a name attribute with Lucas AND a firstname attribute with Georges as an object value :, (*22)

$result = $database->collection($file)->findOne(
  [
    "firstname" => "Georges",
    "name" => "Lucas"
  ], JislyCollection::LOGICAL_AND
);

Update method

For the modification, the documents concerned are entirely replaced by the second array() given in parameter., (*23)

You must first find all the documents to replace to provide the _rid attribute to the update method., (*24)

Modify the only document in the collection whose value $rid to the _rid attribute :, (*25)

$successBool = $database->collection($file)->update(
  $rid,
  [
    "firstname" => "Georges",
    "name" => "Lucas"
  ]
);

The Versions

24/03 2018

dev-master

9999999-dev https://github.com/r0mdau/jisly

Light NoSQL database, JSON file data storing

  Sources   Download

Apache-2.0 Apache2.0

The Requires

  • php >=7.2

 

The Development Requires

12/11 2016

1.0.0

1.0.0.0 https://github.com/r0mdau/jisly

Light NoSQL database, JSON file data storing

  Sources   Download

Apache2.0

The Requires

  • php >=5.4

 

The Development Requires