Christopher Shaw

Software Developer
Php Class Datastore
Date: 2018-07-09 Category: Code

Why would you use DataStore

DataStore in its current version works only with the filesystem, which although not scalable for larger datasets, can be of use for simpler systems.

  • Low overhead compared to a database
  • Capable of Creating, Reading, Updating, Deleting and Searching through data
  • Can be easily extended to add additional functionality
  • Simple to Backup and Restore Data

Some Example Uses

  • User Login System
  • Blog / Guesbook
  • System Logging

History Timeline for DataStore

DataStore is the evolution of a class called Entity from (https://webpi.chris-shaw.com) Entity was a raw class to standardise how the WebPi software would interact with data stored within the filesystem

  • Started Life as Entity.php in WebPi ()
  • Became a general way for WebPi to access data and becoming basis for an authentication class.
  • Was moved to its own repository with unit tests to be shared between progects
  • Renamed to DataStore and Added to packagest for composer install

Usage

Creating

$payload = [
       'id_entity' => 'testId',
       'test' => 'case'
];

$dataStore = new DataStore('exampleID');
$dataStore>create($payload);

Read

$dataStore = new DataStore('exampleID');
$dataStore>getValue('fieldname');

Updating

$dataStore = new DataStore('exampleID');
$dataStore>getValue('field', 'value');

Deleting

$dataStore = new DataStore('exampleID');
$dataStore>delete();

Searching

$filters = [
    ['field','=','value'],
    ['field','>','value']
];

$search = new DataStore();
$results = $search->search();

How to Install

1. Composer

The preferred method is using composer (https://getcomposer.org/) and can be insalled using the following command

composer require christopher-paul-shaw/datastore 

2. Cloning

You can also clone the repository from github

git clone [email protected]:christopher-paul-shaw/DataStore.git

Url: https://github.com/christopher-paul-shaw/DataStore/