示例#1
0
 /**
  * Download an extension
  *
  * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
  * @return void
  */
 public function download(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension)
 {
     $mirrorUrl = $this->repositoryHelper->getMirrors()->getMirrorUrl();
     $fetchedExtension = $this->terUtility->fetchExtension($extension->getExtensionKey(), $extension->getVersion(), $extension->getMd5hash(), $mirrorUrl);
     if (isset($fetchedExtension['extKey']) && !empty($fetchedExtension['extKey']) && is_string($fetchedExtension['extKey'])) {
         $this->fileHandlingUtility->unpackExtensionFromExtensionDataArray($fetchedExtension, $extension, $this->getDownloadPath());
     }
 }
示例#2
0
 /**
  * Adds an extension to the download queue.
  * If the extension was already requested in a different version
  * an exception is thrown.
  *
  * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
  * @param string $stack
  * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
  * @return void
  */
 public function addExtensionToQueue(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension, $stack = 'download')
 {
     if (!is_string($stack) || !in_array($stack, ['download', 'update'])) {
         throw new ExtensionManagerException('Stack has to be either "download" or "update"', 1342432103);
     }
     if (!isset($this->extensionStorage[$stack])) {
         $this->extensionStorage[$stack] = [];
     }
     if (array_key_exists($extension->getExtensionKey(), $this->extensionStorage[$stack])) {
         if ($this->extensionStorage[$stack][$extension->getExtensionKey()] !== $extension) {
             throw new ExtensionManagerException($extension->getExtensionKey() . ' was requested to be downloaded in different versions (' . $extension->getVersion() . ' and ' . $this->extensionStorage[$stack][$extension->getExtensionKey()]->getVersion() . ').', 1342432101);
         }
     }
     $this->extensionStorage[$stack][$extension->getExtensionKey()] = $extension;
 }