namespace Kanboard\Core\Cache; | |
/** | |
* Base Class for Cache Drivers | |
* | |
* @package Kanboard\Core\Cache | |
* @author Frederic Guillot | |
*/ | |
abstract class BaseCache implements CacheInterface | |
{ | |
/** | |
* Proxy cache | |
* | |
* Note: Arguments must be scalar types | |
* | |
* @access public | |
* @param string $class Class instance | |
* @param string $method Container method | |
* @return mixed | |
*/ | |
public function proxy($class, $method) | |
{ | |
$args = func_get_args(); | |
array_shift($args); | |
$key = 'proxy:'.get_class($class).':'.implode(':', $args); | |
$result = $this->get($key); | |
if ($result === null) { | |
$result = call_user_func_array(array($class, $method), array_splice($args, 1)); | |
$this->set($key, $result); | |
} | |
return $result; | |
} | |
} | |