public static function create($conn = null) { $loggedIn = sfContext::hasInstance() && sfContext::getInstance()->getUser()->isAuthenticated(); if (!$loggedIn && (sfConfig::get('app_cache_query_enabled') || sfConfig::get('app_cache_result_enabled'))) { if (sfConfig::get('app_cache_driver') == 'Apc') { $driver = new Doctrine_Cache_Apc(); } else { $servers = array('host' => '127.0.0.1', 'port' => 11211, 'persistent' => true); $memcacheAry = array('servers' => $servers, 'compression' => false); $driver = new Doctrine_Cache_Memcache($memcacheAry); } } $q = new LsDoctrineQuery($conn); if (!$loggedIn && sfConfig::get('app_cache_query_enabled')) { $q->useQueryCache($driver); } if (!$loggedIn && sfConfig::get('app_cache_result_enabled')) { $q->useResultCache($driver); } return $q; }