smart-php / super-cache
Simple PHP cache mechanism which is 500X Faster Caching than Redis/Memcache/APC in PHP & HHVM
Installs: 829
Dependents: 0
Suggesters: 0
Security: 0
Stars: 22
Watchers: 3
Forks: 4
Open Issues: 0
pkg:composer/smart-php/super-cache
Requires
- php: >=5.3.0
README
Simple PHP cache mechanism which provides 200X Faster Caching than other PHP cache mechanisms like Redis/Memcache/APC in PHP & HHVM. SuperCache uses the normal file system to store values. This method is faster than Redis/Memcache because all those serialize and unserialize 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 the tmp folder. Please make sure that the tmp folder has write access.
You can set a custom folder for the cache:
sCache::setPath('youfolder/tempfolder/');
or
define('SuperCache_PATH','youfolder/tempfolder/');
Advanced Options
Locking
Lock your data to readonly so that the data won't be overwritten.
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 whether it has 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 the trait class State by adding use State, or you can do it 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.