コード例 #1
0
 /**
  * Calculates new file name for resource that will be dumped onto new location.
  *
  * @param ResourceInterface $resource Resource which will be dumped in new location.
  * @return string New file name.
  */
 private function calculateTargetFilename(ResourceInterface $resource)
 {
     if ($resource instanceof StringResource) {
         $filename = isset($resource->getOptions()['filename']) ? $resource->getOptions()['filename'] : $resource->getKey();
         if ($resource instanceof JavascriptStringResource) {
             $extension = AssetType::JAVASCRIPT;
         } elseif ($resource instanceof StylesheetStringResource) {
             $extension = AssetType::STYLESHEET;
         } else {
             throw new InvalidArgumentException(sprintf('Unable to determine resource type, instance of "%s" expected, "%s" given.', implode('", "', array('RunOpenCode\\AssetsInjection\\Resource\\JavascriptStringResource', 'RunOpenCode\\AssetsInjection\\Resource\\StylesheetStringResource')), get_class($resource)));
         }
     } else {
         $filename = pathinfo($resource->getSource(), PATHINFO_FILENAME);
         $extension = AssetType::guessAssetType($resource->getSource());
     }
     $environment = $this->options['development'] ? $this->options['development_environment_extension_suffix'] : $this->options['production_environment_extension_suffix'];
     return sprintf('%s%s%s%s', $resource->getKey() . '.', $filename . '.', $environment ? $environment . '.' : '', $extension);
 }