/** * @param Asset[] $assets * * @return Asset[] */ public static function process($assets) { if ($directory = self::getOutputDirectory()) { $relativeDirectory = self::getRelativeOutputDirectory(); $filename = ''; $sourceFiles = array(); for ($i = 0; $i < count($assets); $i++) { $asset = $assets[$i]; $filename .= $asset->getAssetHashKey(); $sourceFiles[] = $asset->getAssetURL(); } $filename = sha1($filename); $cacheFile = $directory . '/' . $filename . '.js'; if (!file_exists($cacheFile)) { $js = ''; foreach ($assets as $asset) { $contents = $asset->getAssetContents(); if (isset($contents)) { if ($asset->assetSupportsMinification()) { $contents = \JShrink\Minifier::minify($contents); } $js .= $contents . "\n\n"; } } @file_put_contents($cacheFile, $js); } $asset = new JavascriptAsset(); $asset->setAssetURL($relativeDirectory . '/' . $filename . '.js'); $asset->setAssetPath($directory . '/' . $filename . '.js'); $asset->setCombinedAssetSourceFiles($sourceFiles); return array($asset); } return $assets; }
/** * {@inheritDoc} */ public static function process($assets) { if (self::getOutputDirectory()) { $filename = ''; $sourceFiles = array(); for ($i = 0; $i < count($assets); $i++) { $asset = $assets[$i]; $filename .= $asset->getAssetHashKey(); $sourceFiles[] = $asset->getAssetURL(); } $filename = sha1($filename); $app = Facade::getFacadeApplication(); $ah = $app->make('helper/assets'); $paths = array(); foreach ($assets as $asset) { $paths[] = $asset->getAssetPath(); } $relativePath = $ah->javascriptPath($paths, array('name' => $filename, 'skipDigest' => true)); $assetDir = Config::get('concrete.cache.directory'); $asset = new JavascriptAsset(); $asset->setAssetURL($relativePath); $asset->setAssetPath($assetDir . $relativePath); $asset->setCombinedAssetSourceFiles($sourceFiles); return array($asset); } return $assets; }