Description
Core\Storage storage()
Our storage function allows you to store information in the DB, without the need to create custom database tables on a clients set. Its based on a key/value system that allows for custom queries and ordering plus the ability to set and return multiple values for a specific key.
Notice
The storage system is not a cache. All data sets are permanent, unless deleted. Use the cache function if you wish to simply cache data.
Examples
<?php
route('/foo', function() {
   /**
    * Set a string value "bar" in the DB using the key "foo"
    */
   storage()->set('foo', 'bar');
   // Print the value for "foo"
   $object = storage()->get('foo');
   echo $object->value;
   /**
    * Storing arrays
    */
   storage()->set('foo_array', [
      'hello' => 'world'
   ]);
   // Print the value for "foo_array"
   $object = storage()->get('foo_array');
   // Prints the object
   print_r($object->value);
   // Print the "hello" value in our array, which will output "world"
   echo $object->value->hello;
   /**
    * Storing multiple values
    */
   storage()->set('multiple', '1');
   storage()->set('multiple', '2');
   storage()->set('multiple', '3');
   // Get all objects based on key
   $objects = storage()->all('multiple');
   foreach ($objects as $object) {
      // Will print 1,2,3
      echo $object->value . ',';
   }
});
Methods
| Method | Description | Usage | Returns | 
|---|---|---|---|
get(string $key [, int $id = null] ) 
 $key Unique storage key. $id If you store multiple data in a key 
  | Get data from the DB based on a unique key  | $object = storage()->get('foo');
echo $object->value;
 | On success it returns Core\Storage\Object, null on failure.  | 
getById(int $id) 
 $id Unique auto incremented ID.  | Get a specific data set based on the unique  | $object = storage()->getById(1); echo $object->value;  | On success it returns Core\Storage\Object, null on failure.  | 
all(string $key) 
 $key Unique storage key.  | Returns all data sets based on a unique key. 
  | $objects = storage()->all('multiple');
foreach ($objects as $object) {
 echo $object->value;
}
 | Array of values on success, empty array on failure. Note: Each value from the array is an object from Core\Storage\Object  | 
set(string $key, mixed $value , int $id = 0] ) 
 $key Unique storage key. $value Value to set for this entry. Can be a string, array, int or boolean. $id (optional) Include a custom unique ID for this data set.  | Sets data into the DB based on your key. 
 Notice This method will set multiple entries even if the key already exists.   | // Set a string
storage()->set('foo', 'bar');
 
// Set an array
storage()->set('foo_array', [
   'hello' => 'world'
]);
 
// Set multiple values
storage()->set('foo', '1');
storage()->set('foo', '2');
storage()->set('foo', '3');
 | Returns unique auto increment ID on success, false on failure. | 
update(string $key, mixed $value) $key Unique storage key. $value Value to set for this entry. Can be a string, array, int or boolean.  | Updates the value of a data set that already exists. If the value is an array, it will merge any new data and overwrite  | storage()->update('foo', 'bar');
 | On success it returns the updated Core\Storage\Object, false on failure. | 
del(string $key [, int $id = null] ) 
 $key Unique storage key. $id If you stored multiple data in a key  | Deletes a value from storage based on the key. | storage()->del('foo');
 | null | 
Core\Storage\Object
When we return a data value it returns it as an object. Any value to store can always be accessed via the value property.
| Property | Type | Description | 
|---|---|---|
| id | int | Unique auto incremented storage ID. | 
| key | string | Custom key you pass when accessing the storage methods. | 
| value | mixed | Returns any values you stored in storage. | 
| order | int | Order ID of a data set in storage. |