Downloadphp-super-cache
Simple PHP cache mechanism which is 200X Faster Caching than other PHP cache mechanisaam like Redis/Memcache/APC in PHP & HHVM. SuperCache use normal file system to store the values. This method is faster than Redis/ Memcache because all those serialize and unserialize the objects.
Installation
Via Composer composer require smart-php/super-cache
Basic Usage
<?php
require __DIR__.'/vendor/autoload.php';
use SuperCache\SuperCache as sCache;
//Saving cache value with a key
// sCache::cache('<key>')->set('<value>');
sCache::cache('myKey')->set('Key_value');
//Retrieving cache value with a key
echo sCache::cache('myKey')->get();
?>
Cache Folder
By default the cache will save in tmp folder. Please make sure that the tmp folder have write access.
You can set custom folder for cache sCache::setPath('youfolder/tempfolder/');
or define('SuperCache_PATH','youfolder/tempfolder/');
Advanced Options
Locking
Lock your data to readonly so that the data wont overwrite. sCache::cache('myKey')->set('my_value')->lock();
//setting new value
sCache::cache('myKey')->set('new_value');
echo sCache::cache('myKey')->get(); //output : my_value
//unlocking
sCache::cache('myKey')->unlock()->set('new_value');
echo sCache::cache('myKey')->get(); //output : new_value
Options
//options
sCache::cache('myKey')->set('my_value')->options([
'expiry' => time()+600, //time to expire
'lock' => true //alternative method to lock or unlock
'custom' => 'your customer attribute value'
]);
//isValid (To check for a valid key or to check is it expired or not)
sCache::cache('myKey')->isValid(); //true or false
//To get all option values
print_r(sCache::cache('myKey')->getOptions()); //array
//destroy
sCache::cache('myKey')->destroy();
//clearAll (Clear all cache values)
sCache::cache('myKey')->clearAll();
Cache Your Class
You can cache any class to super cache. To bind data you need to use trait class State by adding use State , or you can do via your custom set_state.
use SuperCache\SuperCache as sCache;
use SuperCache\State as State;
sCache::setPath('youCacheLocation');
Class MyClass
{
/
* This trait class will bind data from cache to your class
*/
use State;
private $firstName;
private $lastName;
public function setName($firstName, $lastName)
{
$this->firstName = $firstName;
$this->lastName = $lastName;
}
public function getName()
{
return $this->firstName . " ". $this->lastName;
}
}
// Creating Object of your class
$myObject = new MyClass;
$myObject->setName("John", "Doe");
// Saving your object in SuperCache
sCache::cache('myObject')->set($myObject);
// Retrieving your object from Cache
$cacheObject = sCache::cache('myObject')->get();
echo $myObject->getName();
License
The MIT License (MIT). Please see License File for more information.
|