Easily store some loose values
This package makes it easy to store and retrieve some loose values. Stored values are saved as a json file.
It can be used like this:
use Spatie\Valuestore\Valuestore;
$valuestore = Valuestore::make($pathToFile);
$valuestore->put('key', 'value');
$valuestore->get('key'); // Returns 'value'
$valuestore->has('key'); // Returns true
// Specify a default value for when the specified key does not exist
$valuestore->get('non existing key', 'default') // Returns 'default'
$valuestore->put('anotherKey', 'anotherValue');
// Put multiple items in one go
$valuestore->put(['ringo' => 'drums', 'paul' => 'bass']);
$valuestore->all(); // Returns an array with all items
$valuestore->forget('key'); // Removes the item
$valuestore->flush(); // Empty the entire valuestore
$valuestore->flushStartingWith('somekey'); // remove all items whose keys start with "somekey"
$valuestore->increment('number'); // $valuestore->get('number') will return 1
$valuestore->increment('number'); // $valuestore->get('number') will return 2
$valuestore->increment('number', 3); // $valuestore->get('number') will return 5
// Valuestore implements ArrayAccess
$valuestore['key'] = 'value';
$valuestore['key']; // Returns 'value'
isset($valuestore['key']); // Return true
unset($valuestore['key']); // Equivalent to removing the value
// Valuestore implements Countable
count($valuestore); // Returns 0
$valuestore->put('key', 'value');
count($valuestore); // Returns 1
Read the usage section of this readme to learn about the other methods.
In this post on Laravel News, Tim MacDonald shares how you can use this package to power a settings
function.
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
Installation
You can install the package via composer:
composer require spatie/valuestore
Usage
To create a Valuestore use the make
method.
$valuestore = Valuestore::make($pathToFile);
You can also pass some values as a second argument. These will be added to the valuestore using the put
method.
$valuestore = Valuestore::make($pathToFile, ['key' => 'value']);
All values will be saved as json in the given file.
When there are no values stored, the file will be deleted.
You can call the following methods on the Valuestore
put
/**
* Put a value in the store.
*
* @param string