terUtility = $terUtility; } /** * @param \TYPO3\CMS\Extensionmanager\Utility\Repository\Helper $repositoryHelper */ public function injectRepositoryHelper(\TYPO3\CMS\Extensionmanager\Utility\Repository\Helper $repositoryHelper) { $this->repositoryHelper = $repositoryHelper; } /** * @param \TYPO3\CMS\Extensionmanager\Utility\FileHandlingUtility $fileHandlingUtility */ public function injectFileHandlingUtility(\TYPO3\CMS\Extensionmanager\Utility\FileHandlingUtility $fileHandlingUtility) { $this->fileHandlingUtility = $fileHandlingUtility; } /** * Download an extension * * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension */ 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()); } } /** * Set the download path * * @param string $downloadPath * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException */ public function setDownloadPath($downloadPath) { if (!in_array($downloadPath, \TYPO3\CMS\Extensionmanager\Domain\Model\Extension::returnAllowedInstallTypes())) { throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException($downloadPath . ' not in allowed download paths', 1344766387); } $this->downloadPath = $downloadPath; } /** * Get the download path * * @return string */ public function getDownloadPath() { return $this->downloadPath; } }