/** * @param array $files * * @return AssetInfo */ public function compressFiles(array $files) { $md5String = ''; foreach ($files as $file) { $path = $this->getAssetPath($file); $md5String .= '.' . filemtime($path); } $fileUpToDate = false; $md5Line = '/* ' . md5($md5String) . " */\n"; $oFile = 'cache/compressed-css/' . md5($md5String) . '.css'; $handle = @fopen($this->getJarves()->getRootDir() . '/../web/' . $oFile, 'r'); if ($handle) { $line = fgets($handle); fclose($handle); if ($line == $md5Line) { $fileUpToDate = true; } } if (!$fileUpToDate) { $content = $this->utils->compressCss($files, 'cache/compressed-css/'); $content = $md5Line . $content; $this->webFilesystem->write($oFile, $content); } $assetInfo = new AssetInfo(); $assetInfo->setPath($oFile); return $assetInfo; }