private function getTmpFilePath($alias, $resourceFile)
 {
     list($module, $path) = PathResolver::instance()->moduleNameAndPath($alias);
     $modulePath = Modules::instance()->pathOf($module);
     $dirAndFile = str_replace($modulePath, '', $resourceFile->getPath());
     $dir = str_replace($resourceFile->getFileName(), '', $dirAndFile);
     $baseName = $resourceFile->getFileNameWithoutExtension();
     $extension = $resourceFile->getExtension();
     $fileHash = HashGenerator::instance()->hash($resourceFile->getMTime(), 7);
     $hashedFileName = $baseName . '_' . $fileHash . '.' . $extension;
     return self::$TMP_DIR . '/' . $module . '/' . $dir . '/' . $hashedFileName;
 }
 public function getResourceUrl($alias)
 {
     list($moduleName, $path) = PathResolver::instance()->moduleNameAndPath($alias);
     $modulePath = Modules::instance()->pathOf($moduleName);
     $resourceFile = new File($modulePath . '/' . self::RESOURCE_DIRNAME . '/' . $path);
     if (!$resourceFile->exists()) {
         $this->throwResourceNotFoundException($resourcePath);
     }
     $resourceLocation = $this->copyToResources($resourceFile, $resourcePath)[1];
     return UrlManager::instance()->geBaseUrl() . '/' . $resourceLocation;
 }