70 if (!is_string($stack) || !in_array($stack, [
'download',
'update'])) {
73 if (!isset($this->extensionStorage[$stack])) {
74 $this->extensionStorage[$stack] = [];
76 if (array_key_exists($extension->getExtensionKey(), $this->extensionStorage[$stack])) {
77 if ($this->extensionStorage[$stack][$extension->getExtensionKey()] !== $extension) {
78 throw new ExtensionManagerException(
79 $extension->getExtensionKey() .
' was requested to be downloaded in different versions (' . $extension->getVersion()
80 .
' and ' . $this->extensionStorage[$stack][$extension->getExtensionKey()]->getVersion() .
').',
85 $this->extensionStorage[$stack][$extension->getExtensionKey()] = $extension;
105 if (!is_string($stack) || !in_array($stack, [
'download',
'update'])) {
108 if (array_key_exists($stack, $this->extensionStorage) && is_array($this->extensionStorage[$stack])) {
109 if (array_key_exists($extension->getExtensionKey(), $this->extensionStorage[$stack])) {
110 unset($this->extensionStorage[$stack][$extension->getExtensionKey()]);
122 $this->extensionInstallStorage[$extension->getExtensionKey()] = $extension;
132 if (array_key_exists($extensionKey, $this->extensionInstallStorage)) {
133 unset($this->extensionInstallStorage[$extensionKey]);
145 $this->extensionCopyStorage[$extensionKey] = $sourceFolder;
155 if (array_key_exists($extensionKey, $this->extensionCopyStorage)) {
156 unset($this->extensionCopyStorage[$extensionKey]);
188 return empty($this->extensionStorage[$stack]);
198 return empty($this->extensionCopyStorage);
208 return empty($this->extensionInstallStorage);
220 if ($stack ===
null) {
222 $this->extensionStorage = [];
223 } elseif (isset($this->extensionStorage[$stack])) {
224 $storage = $this->extensionStorage[$stack];
225 $this->extensionStorage[$stack] = [];
238 $this->extensionCopyStorage = [];
250 $this->extensionInstallStorage = [];