function DrushFileCache::clear

6.x cache.inc DrushFileCache::clear($cid = NULL, $wildcard = FALSE)
5.x cache.inc DrushFileCache::clear($cid = NULL, $wildcard = FALSE)

Expire data from the cache. If called without arguments, expirable entries will be cleared from all known cache bins.

Parameters

$cid: If set, the cache ID to delete. Otherwise, all cache entries that can expire are deleted.

$wildcard: If set to TRUE, the $cid is treated as a substring to match rather than a complete ID. The match is a right hand match. If '*' is given as $cid, the bin $bin will be emptied.

Overrides DrushCacheInterface::clear

File

includes/cache.inc, line 381
Drush cache API

Class

DrushFileCache
Default cache implementation.

Code

function clear($cid = NULL, $wildcard = FALSE) {
  $bin_dir = $this->cacheDirectory();
  $files = array();
  if (empty($cid)) {
    drush_delete_dir($bin_dir, TRUE);
  }
  else {
    if ($wildcard) {
      if ($cid == '*') {
        drush_delete_dir($bin_dir, TRUE);
      }
      else {
        $matches = drush_scan_directory($bin_dir, "/^$cid/", array('.', '..'));
        $files = $files + array_keys($matches);
      }
    }
    else {
      $files[] = $this->getFilePath($cid);
    }

    foreach ($files as $f) {
      // Delete immediately instead of drush_register_file_for_deletion().
      unlink($f);
    }
  }
}