From dd76905065866ba8b058893cac3ab9bbceb9751e Mon Sep 17 00:00:00 2001 From: zYne Date: Wed, 31 Jan 2007 22:11:36 +0000 Subject: [PATCH] cache array driver added for testing purposes --- lib/Doctrine/Cache/Array.php | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 lib/Doctrine/Cache/Array.php diff --git a/lib/Doctrine/Cache/Array.php b/lib/Doctrine/Cache/Array.php new file mode 100644 index 000000000..3039ea18f --- /dev/null +++ b/lib/Doctrine/Cache/Array.php @@ -0,0 +1,91 @@ +. + */ + +/** + * Doctrine_Cache_Interface + * + * @package Doctrine + * @subpackage Doctrine_Cache + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + * @author Konsta Vesterinen + */ +class Doctrine_Cache_Array +{ + /** + * @var array $data an array of cached data + */ + protected $data; + + /** + * Test if a cache is available for the given id and (if yes) return it (false else) + * + * Note : return value is always "string" (unserialization is done by the core not by the backend) + * + * @param string $id cache id + * @param boolean $testCacheValidity if set to false, the cache validity won't be tested + * @return string cached datas (or false) + */ + public function fetch($id, $testCacheValidity = true) + { + if (isset($this->data[$id])) { + return $this->data[$id]; + } + return null; + } + /** + * Test if a cache is available or not (for the given id) + * + * @param string $id cache id + * @return mixed false (a cache is not available) or "last modified" timestamp (int) of the available cache record + */ + public function contains($id) + { + return isset($this->data[$id]); + } + /** + * Save some string datas into a cache record + * + * Note : $data is always saved as a string + * + * @param string $data data to cache + * @param string $id cache id + * @param int $lifeTime if != false, set a specific lifetime for this cache record (null => infinite lifeTime) + * @return boolean true if no problem + */ + public function save($data, $id, $lifeTime = false) + { + $this->data[$id] = $data; + } + /** + * Remove a cache record + * + * @param string $id cache id + * @return boolean true if no problem + */ + public function delete($id) + { + unset($this->data[$id]); + } +}