public function get($obj_name)
 {
     $this->m_stats->m_gets++;
     $value = sfProcessCache::get($this->m_namespace . $obj_name);
     if (!isset($value)) {
         $this->m_stats->m_misses++;
         return NULL;
     } else {
         $this->m_stats->m_hits++;
         return $value;
     }
 }
 /**
  * @todo Should we throw an exception if the config value does not exist?
  */
 public static function getConfigValueFor($input)
 {
     $cache = sfConfig::get('app_phpbb_cache', false);
     if (!$cache) {
         $configValues = self::getConfigValues();
         if (isset($configValues[$input])) {
             return $configValues[$input];
         }
     }
     if ($cache) {
         $cacheKeyNonDynamic = 'config_values';
         $cacheKeyDynamic = 'config_values_dynamic';
         if (sfProcessCache::has($cacheKeyNonDynamic)) {
             $configValues = sfProcessCache::get($cacheKeyNonDynamic);
         } else {
             $configValues = self::getConfigValues(0);
             sfProcessCache::set($cacheKeyNonDynamic, $configValues, myTools::getConfig('app_cache_config_non_dynamic', 86400));
         }
         if (isset($configValues[$input])) {
             return $configValues[$input];
         }
         // Reset config values before we check dynamic config values
         unset($configValues);
         if (sfProcessCache::has($cacheKeyDynamic)) {
             $configValues = sfProcessCache::get($cacheKeyDynamic);
         } else {
             $configValues = self::getConfigValues(1);
             sfProcessCache::set($cacheKeyDynamic, $configValues, myTools::getConfig('app_cache_config_dynamic', 60));
         }
         if (isset($configValues[$input])) {
             return $configValues[$input];
         }
     }
     // If we get here, there is no config value for this input.
     return null;
 }
}


$cache = new sfProcessCache();

$t->diag('useCache()');

// Simple queries

$cache->clear();

$finder = DbFinder::from('Article');
$finder = $finder->where('Title', 'foo')->limit(1);
$key = $finder->getUniqueIdentifier();
$finder->findOne();
$t->is($cache->get($key), null, 'No cache is set until the cache is enabled');
$finder = $finder->where('Title', 'foo')->limit(1)->useCache($cache, 10);
$finder->findOne();
$t->isnt($cache->get($key), null, 'useCache() activates query caching on simple find() queries');
$SQL1 = $finder->getLatestQuery(); // SELECT * FROM article WHERE article.title = 'foo' LIMIT 1
$finder->where('Title', 'bar')->findOne();
$SQL2 = $finder->getLatestQuery(); // SELECT * FROM article WHERE article.title = 'bar' LIMIT 1
$t->isnt($SQL1, $SQL2, 'Uncached finder queries trigger SQL queries');
$finder->where('Title', 'foo')->findOne();
$SQL3 = $finder->getLatestQuery(); // Using cache, so no new query: SELECT * FROM article WHERE article.title = 'bar' LIMIT 1
$t->is($SQL3, $SQL2, 'Cached finder queries do not trigger SQL queries');
$finder->useCache(false);
$finder->where('Title', 'foo')->findOne();
$SQL4 = $finder->getLatestQuery(); // Not using cache, so new query: SELECT * FROM article WHERE article.title = 'foo' LIMIT 1
$t->isnt($SQL4, $SQL2, 'Setting cache to false deactivates the cache');
 public function get($key)
 {
     return sfProcessCache::get($key);
 }