Exemple #1
0
 /**
  * Return merged assets, if merging is enabled for a given content type
  *
  * @param MergeableInterface[] $assets
  * @param string $contentType
  * @return array|\Iterator
  * @throws \InvalidArgumentException
  */
 public function getMergedAssets(array $assets, $contentType)
 {
     $isCss = $contentType == 'css';
     $isJs = $contentType == 'js';
     if (!$isCss && !$isJs) {
         throw new \InvalidArgumentException("Merge for content type '{$contentType}' is not supported.");
     }
     $isCssMergeEnabled = $this->config->isMergeCssFiles();
     $isJsMergeEnabled = $this->config->isMergeJsFiles();
     if ($isCss && $isCssMergeEnabled || $isJs && $isJsMergeEnabled) {
         if ($this->state->getMode() == \Magento\Framework\App\State::MODE_PRODUCTION) {
             $mergeStrategyClass = 'Magento\\Framework\\View\\Asset\\MergeStrategy\\FileExists';
         } else {
             $mergeStrategyClass = 'Magento\\Framework\\View\\Asset\\MergeStrategy\\Checksum';
         }
         $mergeStrategy = $this->objectManager->get($mergeStrategyClass);
         $assets = $this->objectManager->create('Magento\\Framework\\View\\Asset\\Merged', array('assets' => $assets, 'mergeStrategy' => $mergeStrategy));
     }
     return $assets;
 }