‪TYPO3CMS  11.5
DownloadQueue.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
20 
26 {
32  protected $extensionStorage = [];
33 
39  protected $extensionInstallStorage = [];
40 
50  public function addExtensionToQueue(‪Extension $extension, $stack = 'download')
51  {
52  if (!is_string($stack) || !in_array($stack, ['download', 'update'])) {
53  throw new ‪ExtensionManagerException('Stack has to be either "download" or "update"', 1342432103);
54  }
55  if (!isset($this->‪extensionStorage[$stack])) {
56  $this->‪extensionStorage[$stack] = [];
57  }
58  if (array_key_exists($extension->‪getExtensionKey(), $this->extensionStorage[$stack])) {
59  if ($this->‪extensionStorage[$stack][$extension->‪getExtensionKey()] !== $extension) {
60  throw new ExtensionManagerException(
61  $extension->‪getExtensionKey() . ' was requested to be downloaded in different versions (' . $extension->‪getVersion()
62  . ' and ' . $this->extensionStorage[$stack][$extension->‪getExtensionKey()]->getVersion() . ').',
63  1342432101
64  );
65  }
66  }
67  $this->‪extensionStorage[$stack][$extension->‪getExtensionKey()] = $extension;
68  }
69 
73  public function ‪getExtensionQueue()
74  {
75  return $this->extensionStorage;
76  }
77 
85  public function ‪removeExtensionFromQueue(Extension $extension, $stack = 'download')
86  {
87  if (!is_string($stack) || !in_array($stack, ['download', 'update'])) {
88  throw new ExtensionManagerException('Stack has to be either "download" or "update"', 1342432104);
89  }
90  if (array_key_exists($stack, $this->‪extensionStorage) && is_array($this->‪extensionStorage[$stack])) {
91  if (array_key_exists($extension->getExtensionKey(), $this->extensionStorage[$stack])) {
92  unset($this->‪extensionStorage[$stack][$extension->getExtensionKey()]);
93  }
94  }
95  }
96 
102  public function ‪addExtensionToInstallQueue($extension)
103  {
104  $this->extensionInstallStorage[$extension->getExtensionKey()] = $extension;
105  }
106 
112  public function ‪getExtensionInstallStorage()
113  {
114  return $this->extensionInstallStorage;
115  }
116 
123  public function ‪isQueueEmpty($stack)
124  {
125  return empty($this->‪extensionStorage[$stack]);
126  }
127 
134  public function ‪resetExtensionQueue($stack = null)
135  {
136  $storage = [];
137  if ($stack === null) {
138  $storage = $this->extensionStorage;
139  $this->‪extensionStorage = [];
140  } elseif (isset($this->‪extensionStorage[$stack])) {
141  $storage = $this->‪extensionStorage[$stack];
142  $this->‪extensionStorage[$stack] = [];
143  }
144 
145  return $storage;
146  }
147 
152  public function ‪resetExtensionInstallStorage()
153  {
154  $storage = $this->extensionInstallStorage;
155  $this->extensionInstallStorage = [];
156 
157  return $storage;
158  }
159 }
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\resetExtensionInstallStorage
‪array resetExtensionInstallStorage()
Definition: DownloadQueue.php:150
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:28
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\extensionStorage
‪array< string, $extensionStorage=array();protected array $extensionInstallStorage=array();public function addExtensionToQueue(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]
Definition: DownloadQueue.php:54
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue
Definition: DownloadQueue.php:26
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\addExtensionToInstallQueue
‪addExtensionToInstallQueue($extension)
Definition: DownloadQueue.php:100
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getVersion
‪string getVersion()
Definition: Extension.php:398
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getExtensionKey
‪string getExtensionKey()
Definition: Extension.php:269
‪TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
Definition: ExtensionManagerException.php:23
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\getExtensionInstallStorage
‪array getExtensionInstallStorage()
Definition: DownloadQueue.php:110
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\isQueueEmpty
‪bool isQueueEmpty($stack)
Definition: DownloadQueue.php:121
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\getExtensionQueue
‪array getExtensionQueue()
Definition: DownloadQueue.php:71
‪TYPO3\CMS\Core\SingletonInterface
Definition: SingletonInterface.php:22
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\resetExtensionQueue
‪array resetExtensionQueue($stack=null)
Definition: DownloadQueue.php:132
‪TYPO3\CMS\Extensionmanager\Domain\Model
Definition: Dependency.php:18
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\removeExtensionFromQueue
‪removeExtensionFromQueue(Extension $extension, $stack='download')
Definition: DownloadQueue.php:83