2 namespace TYPO3\CMS\Extensionmanager\Service;
110 $this->installUtility->reloadAvailableExtensions();
112 $this->dependencyUtility->checkDependencies($extension);
113 $this->downloadQueue->addExtensionToInstallQueue($extension);
125 $this->downloadQueue->addExtensionToCopyQueue($extensionKey, $sourceFolder);
138 $this->dependencyUtility->checkDependencies($extension);
139 if (!$this->dependencyUtility->hasDependencyErrors()) {
140 $this->downloadQueue->addExtensionToQueue($extension);
152 $this->dependencyUtility->checkDependencies($extension);
153 $this->downloadQueue->addExtensionToQueue($extension,
'update');
187 $updatedDependencies = array();
188 $installedDependencies = array();
189 $queue = $this->downloadQueue->getExtensionQueue();
190 $copyQueue = $this->downloadQueue->getExtensionCopyStorage();
192 if (!empty($copyQueue)) {
195 $downloadedDependencies = array();
196 if (array_key_exists(
'download', $queue)) {
199 if ($this->automaticInstallationEnabled) {
200 if (array_key_exists(
'update', $queue)) {
205 $this->downloadQueue->addExtensionToInstallQueue($extension);
206 $installQueue = $this->downloadQueue->getExtensionInstallStorage();
207 if (!empty($installQueue)) {
211 return array_merge($downloadedDependencies, $updatedDependencies, $installedDependencies);
221 return $this->dependencyUtility->getDependencyErrors();
231 return $this->extensionModelUtility->mapExtensionArrayToModel(
232 $this->installUtility->enrichExtensionWithDetails($extensionKey)
244 return $this->installUtility->isAvailable($extensionKey);
256 $this->installUtility->reloadPackageInformation($extensionKey);
278 $this->dependencyUtility->setSkipDependencyCheck($this->skipDependencyCheck);
279 $this->dependencyUtility->checkDependencies($extension);
281 return !$this->dependencyUtility->hasDependencyErrors();
294 $path = $paths[$this->downloadUtility->getDownloadPath()];
295 $localExtensionStorage = $path . $extensionKey .
'/Initialisation/Extensions/';
296 $this->dependencyUtility->setLocalExtensionStorage($localExtensionStorage);
308 foreach ($copyQueue as $extensionKey => $sourceFolder) {
309 $destination = $installPaths[
'Local'] . $extensionKey;
313 $this->downloadQueue->removeExtensionFromCopyQueue($extensionKey);
326 $resolvedDependencies = array();
327 foreach ($updateQueue as $extensionToUpdate) {
328 $this->installUtility->uninstall($extensionToUpdate->getExtensionKey());
329 $resolvedDependencies[
'updated'][$extensionToUpdate->getExtensionKey()] = $extensionToUpdate;
331 return $resolvedDependencies;
342 if (!empty($installQueue)) {
345 $resolvedDependencies = array();
346 foreach ($installQueue as $extensionKey => $_) {
347 $this->installUtility->install($extensionKey);
349 if (!is_array($resolvedDependencies[
'installed'])) {
350 $resolvedDependencies[
'installed'] = array();
352 $resolvedDependencies[
'installed'][$extensionKey] = $extensionKey;
354 return $resolvedDependencies;
366 $resolvedDependencies = array();
367 foreach ($downloadQueue as $extensionToDownload) {
368 $this->downloadUtility->download($extensionToDownload);
369 $this->downloadQueue->removeExtensionFromQueue($extensionToDownload);
370 $resolvedDependencies[
'downloaded'][$extensionToDownload->getExtensionKey()] = $extensionToDownload;
373 return $resolvedDependencies;
384 $this->dependencyUtility->setSkipDependencyCheck($this->skipDependencyCheck);
385 $this->dependencyUtility->checkDependencies($extension);
386 $installQueue = $this->downloadQueue->getExtensionInstallStorage();
387 if (is_array($installQueue) && !empty($installQueue)) {
388 $installQueue = array(
'install' => $installQueue);
390 return array_merge($this->downloadQueue->getExtensionQueue(), $installQueue);
405 if ($extension->
getUid()) {
406 $this->downloadUtility->download($extension);
433 if (!isset($this->signalSlotDispatcher)) {
435 ->get(Dispatcher::class);