/**
  * Cache media asset files and retrieve cached asset files
  * @return array
  */
 protected function cacheMediaAssetFiles()
 {
     $aAssetFileFilters = array();
     $aAssetFiles = array();
     //Retrieve asset files cache manager
     $oAssetFilesCacheManager = $this->getAssetFilesCacheManager();
     // Retrieve asset file filters manager
     $oAssetFileFiltersManager = $this->getAssetFileFiltersManager();
     $bIsProduction = $this->getOptions()->isProduction();
     foreach ($this->getAssetFilesConfiguration()->getAssetFiles(\AssetsBundle\AssetFile\AssetFile::ASSET_MEDIA) as $oAssetFile) {
         if ($oAssetFilesCacheManager->isAssetFileCached($oAssetFile)) {
             $aAssetFiles[] = $oAssetFilesCacheManager->getAssetFileCachePath($oAssetFile);
             continue;
         }
         if ($bIsProduction) {
             if (!isset($aAssetFileFilters[$sAssetFileExtension = $oAssetFile->getAssetFileExtension()])) {
                 $aAssetFileFilters[$sAssetFileExtension] = $oAssetFileFiltersManager->has($sAssetFileExtension) ? $oAssetFileFiltersManager->get($sAssetFileExtension) : null;
             }
             $oMediaFileFilter = $aAssetFileFilters[$sAssetFileExtension];
         } else {
             $oMediaFileFilter = null;
         }
         if ($oMediaFileFilter) {
             // Create tmp asset file
             \Zend\Stdlib\ErrorHandler::stop(true);
             $sTmpAssetFilePath = tempnam($this->getOptions()->getTmpDirPath(), '.' . $sAssetFileExtension);
             \Zend\Stdlib\ErrorHandler::start();
             $oTmpAssetFile = new \AssetsBundle\AssetFile\AssetFile(array('asset_file_type' => \AssetsBundle\AssetFile\AssetFile::ASSET_MEDIA, 'asset_file_path' => $sTmpAssetFilePath));
             $oTmpAssetFile->setAssetFileContents($oMediaFileFilter->filterAssetFile($oAssetFile), false);
             // Cache asset file
             $aAssetFiles[] = $oAssetFilesCacheManager->cacheAssetFile($oTmpAssetFile, $oAssetFile);
             // Unlink tmp asset file
             \Zend\Stdlib\ErrorHandler::stop(true);
             unlink($sTmpAssetFilePath);
             \Zend\Stdlib\ErrorHandler::start();
         } else {
             // Cache asset file
             $aAssetFiles[] = $oAssetFilesCacheManager->cacheAssetFile($oAssetFile);
         }
     }
     return $aAssetFiles;
 }