From b080397f022ddd4a2c35cb8b5489555d3e0dda2c Mon Sep 17 00:00:00 2001 From: zYne Date: Fri, 29 Jun 2007 09:39:03 +0000 Subject: [PATCH] --- lib/Doctrine/Cache/Db.php | 7 +- lib/Doctrine/Cache/Sqlite.php | 123 ---------------------------------- 2 files changed, 6 insertions(+), 124 deletions(-) delete mode 100644 lib/Doctrine/Cache/Sqlite.php diff --git a/lib/Doctrine/Cache/Db.php b/lib/Doctrine/Cache/Db.php index 8c440104d..362838155 100644 --- a/lib/Doctrine/Cache/Db.php +++ b/lib/Doctrine/Cache/Db.php @@ -70,6 +70,11 @@ class Doctrine_Cache_Db extends Doctrine_Cache_Driver implements Countable public function fetch($id, $testCacheValidity = true) { $sql = 'SELECT data, expires FROM cache WHERE id = ?'; + + if ($testCacheValidity) { + $sql .= ' AND (expire=0 OR expire > ' . time() . ')'; + } + $result = $this->getConnection()->fetchAssoc($sql, array($id)); return unserialize($result['data']); @@ -82,7 +87,7 @@ class Doctrine_Cache_Db extends Doctrine_Cache_Driver implements Countable */ public function contains($id) { - $sql = 'SELECT expires FROM cache WHERE id = ?'; + $sql = 'SELECT expires FROM cache WHERE id = ? AND (expire=0 OR expire > ' . time() . ')'; return $this->getConnection()->fetchOne($sql, array($id)); } diff --git a/lib/Doctrine/Cache/Sqlite.php b/lib/Doctrine/Cache/Sqlite.php deleted file mode 100644 index 38d971171..000000000 --- a/lib/Doctrine/Cache/Sqlite.php +++ /dev/null @@ -1,123 +0,0 @@ -. - */ - -/** - * Doctrine_Cache_Sqlite - * - * @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_Sqlite extends Doctrine_Cache_Driver implements Countable -{ - /** - * @var array $_options an array of options - */ - protected $_options = array('connection' => ':sqlite::memory'); - /** - * 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) - { - $sql = 'SELECT data, expires FROM cache WHERE id = ?'; - $result = $this->getConnection()->fetchAssoc($sql, array($id)); - - return unserialize($result['data']); - } - /** - * getConnection - * returns the connection object associated with this cache driver - * - * @return Doctrine_Connection connection object - */ - public function getConnection() - { - if (isset($this->_options['connection'])) { - return $this->_options['connection']; - } - - throw new Doctrine_Cache_Exception('Connection object not availible. ' . - 'For setting the connection use setOption().'); - } - /** - * 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) - { - $sql = 'SELECT expires FROM cache WHERE id = ?'; - - return $this->getConnection()->fetchOne($sql, array($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) - { - $sql = 'INSERT INTO cache (id, data, expires) VALUES (?, ?, ?)'; - - $params = array($id, serialize($data), (time() + $lifeTime)); - - return (bool) $this->getConnection()->exec($sql, $params); - } - /** - * Remove a cache record - * - * @param string $id cache id - * @return boolean true if no problem - */ - public function delete($id) - { - $sql = 'DELETE FROM cache WHERE id = ?'; - - return (bool) $this->getConnection()->exec($sql, array($id)); - } - /** - * count - * returns the number of cached elements - * - * @return integer - */ - public function count() - { - return (int) $this->getConnection()->fetchOne('SELECT COUNT(*) FROM cache'); - } -}