. */ namespace Doctrine\Common\Cache; /** * Array cache driver. * * @link www.doctrine-project.org * @since 2.0 * @author Benjamin Eberlei * @author Guilherme Blanco * @author Jonathan Wage * @author Roman Borschel * @author David Abdemoulaie */ class ArrayCache extends CacheProvider { /** * @var array $data */ private $data = array(); /** * {@inheritdoc} */ protected function doFetch($id) { return $this->doContains($id) ? $this->data[$id] : false; } /** * {@inheritdoc} */ protected function doContains($id) { // isset() is required for performance optimizations, to avoid unnecessary function calls to array_key_exists. return isset($this->data[$id]) || array_key_exists($id, $this->data); } /** * {@inheritdoc} */ protected function doSave($id, $data, $lifeTime = 0) { $this->data[$id] = $data; return true; } /** * {@inheritdoc} */ protected function doDelete($id) { unset($this->data[$id]); return true; } /** * {@inheritdoc} */ protected function doFlush() { $this->data = array(); return true; } /** * {@inheritdoc} */ protected function doGetStats() { return null; } }