/** * Touch internal * */ public function _touch($filter, $duration) { Charcoal_ParamTrait::validateImplements(1, 'Charcoal_IFileFilter', $filter); Charcoal_ParamTrait::validateInteger(2, $duration, TRUE); $expire_date = date('Y-m-d H:i:s', strtotime("+{$duration} seconds")); // meta suffix $suffix = '.' . CACHE_FILE_EXT_META; // select files and delete them all $files = $this->_cache_root_dir->listFiles($meta_filter); if ($files && is_array($files)) { foreach ($files as $file) { $key = basename($file, $suffix); // read cache meta file $meta = $this->_readMeta($meta_file); if ($meta === FALSE) { $meta = $this->_buildMeta($key); if ($meta === FALSE) { continue; } } // save meta file $meta['expire_date'] = $expire_date; $this->_writeMeta($meta_file, p($meta)); } } }