‪TYPO3CMS  ‪main
DownloadQueue.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
22 
28 {
34  protected array ‪$extensionStorage = [];
35 
39  protected array ‪$extensionInstallStorage = [];
40 
46  public function ‪addExtensionToQueue(‪Extension $extension, string $stack = 'download'): void
47  {
48  if (!in_array($stack, ['download', 'update'])) {
49  throw new ‪ExtensionManagerException('Stack has to be either "download" or "update"', 1342432103);
50  }
51  if (!isset($this->extensionStorage[$stack])) {
52  $this->extensionStorage[$stack] = [];
53  }
54  if (array_key_exists($extension->‪getExtensionKey(), $this->extensionStorage[$stack])) {
55  if ($this->extensionStorage[$stack][$extension->‪getExtensionKey()] !== $extension) {
57  $extension->‪getExtensionKey() . ' was requested to be downloaded in different versions (' . $extension->‪getVersion()
58  . ' and ' . $this->extensionStorage[$stack][$extension->‪getExtensionKey()]->getVersion() . ').',
59  1342432101
60  );
61  }
62  }
63  $this->extensionStorage[$stack][$extension->‪getExtensionKey()] = $extension;
64  }
65 
66  public function ‪getExtensionQueue(): array
67  {
69  }
70 
76  public function ‪removeExtensionFromQueue(‪Extension $extension, string $stack = 'download'): void
77  {
78  if (!in_array($stack, ['download', 'update'])) {
79  throw new ‪ExtensionManagerException('Stack has to be either "download" or "update"', 1342432104);
80  }
81  if (array_key_exists($stack, $this->extensionStorage) && is_array($this->extensionStorage[$stack])) {
82  if (array_key_exists($extension->‪getExtensionKey(), $this->extensionStorage[$stack])) {
83  unset($this->extensionStorage[$stack][$extension->‪getExtensionKey()]);
84  }
85  }
86  }
87 
91  public function ‪addExtensionToInstallQueue(‪Extension $extension): void
92  {
93  $this->extensionInstallStorage[$extension->‪getExtensionKey()] = $extension;
94  }
95 
99  public function ‪getExtensionInstallStorage(): array
100  {
102  }
103 
110  public function ‪isQueueEmpty(string $stack): bool
111  {
112  return empty($this->extensionStorage[$stack]);
113  }
114 
120  public function ‪resetExtensionQueue(?string $stack = null): array
121  {
122  $storage = [];
123  if ($stack === null) {
124  $storage = ‪$this->extensionStorage;
125  $this->extensionStorage = [];
126  } elseif (isset($this->extensionStorage[$stack])) {
127  $storage = $this->extensionStorage[$stack];
128  $this->extensionStorage[$stack] = [];
129  }
130 
131  return $storage;
132  }
133 
137  public function ‪resetExtensionInstallStorage(): array
138  {
140  $this->extensionInstallStorage = [];
141 
142  return $storage;
143  }
144 }
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\getExtensionInstallStorage
‪getExtensionInstallStorage()
Definition: DownloadQueue.php:99
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\resetExtensionInstallStorage
‪resetExtensionInstallStorage()
Definition: DownloadQueue.php:137
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:30
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\getExtensionQueue
‪getExtensionQueue()
Definition: DownloadQueue.php:66
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue
Definition: DownloadQueue.php:28
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\isQueueEmpty
‪bool isQueueEmpty(string $stack)
Definition: DownloadQueue.php:110
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\resetExtensionQueue
‪resetExtensionQueue(?string $stack=null)
Definition: DownloadQueue.php:120
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\addExtensionToInstallQueue
‪addExtensionToInstallQueue(Extension $extension)
Definition: DownloadQueue.php:91
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\addExtensionToQueue
‪addExtensionToQueue(Extension $extension, string $stack='download')
Definition: DownloadQueue.php:46
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\$extensionInstallStorage
‪array $extensionInstallStorage
Definition: DownloadQueue.php:39
‪TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
Definition: ExtensionManagerException.php:25
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\$extensionStorage
‪array $extensionStorage
Definition: DownloadQueue.php:34
‪TYPO3\CMS\Core\SingletonInterface
Definition: SingletonInterface.php:22
‪TYPO3\CMS\Extensionmanager\Domain\Model
Definition: Dependency.php:18
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getVersion
‪getVersion()
Definition: Extension.php:267
‪TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue\removeExtensionFromQueue
‪removeExtensionFromQueue(Extension $extension, string $stack='download')
Definition: DownloadQueue.php:76
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getExtensionKey
‪getExtensionKey()
Definition: Extension.php:176