diff --git a/t3lib/class.t3lib_compressor.php b/t3lib/class.t3lib_compressor.php index ec560c9..6565c10 100644 --- a/t3lib/class.t3lib_compressor.php +++ b/t3lib/class.t3lib_compressor.php @@ -177,6 +177,28 @@ class t3lib_Compressor { * @return array CSS files */ public function concatenateCssFiles(array $cssFiles, array $options = array()) { + $cache = $GLOBALS['typo3CacheManager']->getCache('cache_hash'); + $identifier = sha1(serialize($cssFiles) . serialize($options)); + + $result = $cache->get($identifier); + if ($result === FALSE) { + $result = self::concatenateCssFilesWorker($cssFiles, $options); + $cache->set($identifier, $result); + } + return $result; + } + + /** + * Concatenates the Stylesheet files + * + * Options: + * baseDirectories If set, only include files below one of the base directories + * + * @param array $cssFiles CSS files to process + * @param array $options Additional options + * @return array CSS files + */ + protected function concatenateCssFilesWorker(array $cssFiles, array $options = array()) { $filesToInclude = array(); foreach ($cssFiles as $key => $fileOptions) { // no concatenation allowed for this file, so continue @@ -218,6 +240,24 @@ class t3lib_Compressor { * @return array JS files */ public function concatenateJsFiles(array $jsFiles) { + $cache = $GLOBALS['typo3CacheManager']->getCache('cache_hash'); + $identifier = sha1(serialize($jsFiles)); + + $result = $cache->get($identifier); + if ($result === FALSE) { + $result = self::concatenateJsFilesWorker($jsFiles); + $cache->set($identifier, $result); + } + return $result; + } + + /** + * Concatenates the JavaScript files + * + * @param array $jsFiles JavaScript files to process + * @return array JS files + */ + protected function concatenateJsFilesWorker(array $jsFiles) { $filesToInclude = array(); foreach ($jsFiles as $key => $fileOptions) { // invalid section found or no concatenation allowed, so continue