[Cache] Restrict flushes to namespace scopes
This commit is contained in:
parent
b19ce5e941
commit
8744443b49
@ -50,7 +50,9 @@ class ApcuAdapter extends AbstractAdapter
|
||||
*/
|
||||
protected function doClear($namespace)
|
||||
{
|
||||
return apcu_clear_cache();
|
||||
return isset($namespace[0]) && class_exists('APCuIterator', false)
|
||||
? apcu_delete(new \APCuIterator(sprintf('/^%s/', preg_quote($namespace, '/')), APC_ITER_KEY))
|
||||
: apcu_clear_cache();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -22,8 +22,9 @@ class DoctrineAdapter extends AbstractAdapter
|
||||
|
||||
public function __construct(CacheProvider $provider, $defaultLifetime = 0, $namespace = '')
|
||||
{
|
||||
parent::__construct($namespace, $defaultLifetime);
|
||||
parent::__construct('', $defaultLifetime);
|
||||
$this->provider = $provider;
|
||||
$provider->setNamespace($namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,7 +48,11 @@ class DoctrineAdapter extends AbstractAdapter
|
||||
*/
|
||||
protected function doClear($namespace)
|
||||
{
|
||||
return $this->provider->flushAll();
|
||||
$namespace = $this->provider->getNamespace();
|
||||
|
||||
return isset($namespace[0])
|
||||
? $this->provider->deleteAll()
|
||||
: $this->provider->flushAll();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user