Пример #1
0
 /**
  * Writes an asset collection to a cache file, optionally applies filters.
  *
  * @param  AssetCollection $assets
  * @param  string          $file
  * @param  array           $filters
  * @return string|false
  */
 protected function doCache(AssetCollection $assets, $file, $filters = [])
 {
     $filters = $this->filters->get($filters);
     if (count($assets)) {
         $salt = array_merge([$_SERVER['SCRIPT_NAME']], array_keys($filters));
         $file = preg_replace('/(.*?)(\\.[^\\.]+)?$/i', '$1-' . $assets->hash(implode(',', $salt)) . '$2', $file, 1);
         if (!file_exists($file)) {
             file_put_contents($file, $assets->dump($filters));
         }
         return $file;
     }
     return false;
 }