Esempio n. 1
0
 public function testQueryCacheCanBeDisabledForSingleQuery()
 {
     $cache = $this->_getCacheDriver();
     $q = new Doctrine_Query();
     $q->select('u.name')->from('User u')->leftJoin('u.Phonenumber p')->where('u.name = ?', 'walhala')->useQueryCache(false);
     $coll = $q->execute();
     $this->assertFalse($cache->contains($q->calculateQueryCacheHash()));
     $this->assertEqual(count($coll), 0);
     $coll = $q->execute();
     $this->assertFalse($cache->contains($q->calculateQueryCacheHash()));
     $this->assertEqual(count($coll), 0);
 }
Esempio n. 2
0
 public function calculateQueryCacheHash()
 {
     if ($this->cachedQueryCacheHash) {
         $result = $this->cachedQueryCacheHash;
         $this->cachedQueryCacheHash = '';
         return $result;
     }
     $result = '';
     if (!$result) {
         $result = parent::calculateQueryCacheHash();
     }
     if ($this->isFoundRows) {
         $result .= ':fr';
     }
     if ($this->whereInCount) {
         $result .= ':count' . $this->whereInCount;
     }
     return $result;
 }
 public function calculateQueryCacheHash()
 {
     if ($this->cachedQueryCacheHash) {
         $result = $this->cachedQueryCacheHash;
         $this->cachedQueryCacheHash = '';
         return $result;
     }
     $result = '';
     $findQueryCacheKey = '';
     if (isset($this->_dqlParts['from'][0])) {
         if (strpos($this->_dqlParts['from'][0], 'dctrn_find')) {
             $findQueryCacheKey = md5($this->_dqlParts['from'][0] . count($this->getFlattenedParams()));
         }
         if (isset(self::$findQueryCacheKeys[$findQueryCacheKey])) {
             $result = self::$findQueryCacheKeys[$findQueryCacheKey];
         }
     }
     if (!$result) {
         $result = parent::calculateQueryCacheHash();
         if ($findQueryCacheKey) {
             self::$findQueryCacheKeys[$findQueryCacheKey] = $result;
         }
     }
     if ($this->isFoundRows) {
         $result .= ':fr';
     }
     if ($this->whereInCount) {
         $result .= ':count' . $this->whereInCount;
     }
     return $result;
 }