Example #1
0
 public function remove($sName = null, $sType = '')
 {
     if (file_exists(PHPFOX_DIR_CACHE . 'cache.lock')) {
         return false;
     }
     $oCache = parent::getInstance();
     if (class_exists('Phpfox_Cache_Storage_File') && Phpfox::getParam('core.cache_storage') == 'file') {
         return $oCache->remove($sName, $sType);
     }
     if (class_exists('Phpfox_Cache_Storage_Memcache') && Phpfox::getParam('core.cache_storage') == 'memcache') {
         $oMemcache = $this->getMemcache();
         if ($sName === null) {
             return $oMemcache->flush();
         }
         switch ($sType) {
             case 'substr':
                 $sPrefix = is_array($sName) ? $sName[0] : $sName;
                 $aPrefix = $this->get($sPrefix);
                 if ($aPrefix && is_array($aPrefix)) {
                     $oMemcache->delete($sPrefix);
                     foreach ($aPrefix as $key) {
                         if ($key) {
                             $oMemcache->delete($sPrefix . $key);
                         }
                     }
                 }
                 break;
             default:
                 if (is_array($sName)) {
                     $sName = $sName[0] . isset($sName[1]) ? $sName[1] : '';
                 }
                 $oMemcache->delete($sName);
         }
     }
 }