Exemple #1
0
 /**
  * Writes an asset collection to a cache file, optionally applies filters.
  *
  * @param  AssetCollection $assets
  * @param  string          $file
  * @param  array           $filters
  * @return mixed
  */
 protected function doCache(AssetCollection $assets, $file, $filters = array())
 {
     $filters = $this->filters->get($filters);
     if ($this->cache && count($assets)) {
         $salt = array_merge(array($_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;
 }
Exemple #2
0
 /**
  * Writes an asset collection to a cache file, optionally applies filters.
  *
  * @param  AssetCollection $assets
  * @param  string          $file
  * @param  array           $filters
  * @return mixed
  */
 protected function doCache(AssetCollection $assets, $file, $filters = array())
 {
     $filters = $this->filters->get($filters);
     if (count($assets)) {
         $time = 0;
         $salt = implode(',', array_keys($filters));
         $file = preg_replace('/(.*?)(\\.[^\\.]+)?$/i', '$1-' . $assets->hash($salt) . '$2', $file, 1);
         foreach ($assets as $asset) {
             if ($path = $asset['path'] and $modified = filemtime($path) and $modified > $time) {
                 $time = $modified;
             }
         }
         if (!file_exists($file) || filemtime($file) < $time) {
             file_put_contents($file, $assets->dump($filters));
         }
         return $file;
     }
     return false;
 }