for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Atreyu;
class ReflectionCacheApc implements ReflectionCache
{
private $localCache;
private $timeToLive = 5;
public function __construct(ReflectionCache $localCache = null)
$this->localCache = $localCache ?: new ReflectionCacheArray;
}
public function setTimeToLive($seconds)
$seconds = (int) $seconds;
$this->timeToLive = ($seconds > 0) ? $seconds : $this->timeToLive;
return $this;
public function fetch($key)
$localData = $this->localCache->fetch($key);
if ($localData != false) {
return $localData;
} else {
$success = null; // stupid by-ref parameter that scrutinizer complains about
$data = apc_fetch($key, $success);
return $success ? $data : false;
public function store($key, $data)
$this->localCache->store($key, $data);
apc_store($key, $data, $this->timeToLive);