PurePHP Key-Value Storage
, (*1)
This is simple key-value storage written on PHP. It does not use files, or other database, just pure PHP., (*2)
Installation
Via Composer:, (*3)
composer require elfet/pure
Now you can run pure like this: php vendor/bin/pure
, (*4)
Or you can install PurePHP globally to run pure by pure
command., (*5)
Quick Guide
Start PurePHP by this command:, (*6)
pure start &
Now PurePHP server is running. Run this command:, (*7)
pure client
Now you can test PurePHP by simple commands like this:, (*8)
> pure.queue.collection.push('hello')
> pure.queue.collection.push('world')
> pure.queue.collection.pop() ~ ' ' ~ pure.queue.collection.pop()
string(11) "hello world"
In pure console you can write commands on Expression Language. To exit from console type exit
command., (*9)
Documentation
Connection to PurePHP server
$port = 1337; // Default port value
$host = '127.0.0.1'; // Default host value
//...
$pure = new Pure\Client($port, $host);
Storages
PurePHP provide different types on storages. All supported storages are in src/Storage. You can access them by next methods and work with them like you work with them directly., (*10)
You do not need to manually create any collection. They will be automatically create at first access., (*11)
$pure->map('collection')->...
$pure->stack('collection')->...
$pure->queue('collection')->...
$pure->priority('collection')->...
Or you can access them by magic methods., (*12)
$pure->map->collection->...
$pure->stack->collection->...
$pure->queue->collection->...
//...
Array Storage ->map
This is simple storage what uses php array to store your data., (*13)
To store date in collection use push
method:, (*14)
$pure->map('collection')->push(['hello' => 'world']);
To get value by key from collection use get
method:, (*15)
$value = $pure->map('collection')->get('hello'); // will return 'world'.
To receive all elements use all
method:, (*16)
$all = $pure->map('collection')->all();
You can check if key exist by has
method, and delete element by delete
method., (*17)
Stack Storage ->stack
This storage use SplStack
to store your data., (*18)
You can use all SplStack
methods and also all
method., (*19)
Queue Storage ->queue
This storage use SplQueue
to store your data., (*20)
You can use SplQueue
methods and also all
method., (*21)
SplQueue
uses enqueue
and deenqueue
to push and pop from queue. In QueueStorage your can use push
and pop
methods to do this., (*22)
Priority Queue Storage ->priority
This storage use SplPriorityQueue
to store your data., (*23)
You can use all SplPriorityQueue
methods and also all
method., (*24)
Filtering
Every storage support function filter
., (*25)
Example:, (*26)
// Get all elements that more than a 100.
$result = $pure->queue('collection')->filter('value > 100');
// Limit to 10.
$result = $pure->priority('collection')->filter('value > 100', 10);
// Complex expression.
$result = $pure->of('collection')->filter('value["year"] > 2000 and value["name"] matches "/term/"');
Filter rules uses Expression Language.
In expression available two variables: key
and value
., (*27)
Deleting
You can delete storages by delete
method:, (*28)
$pure->delete('collection');
TODO
- Dump to file
- Load from file
- Replication
- Sharding