‪TYPO3CMS  ‪main
PackageInitializationEvent.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 
20 use Psr\Container\ContainerInterface;
24 
30 {
34  public function ‪__construct(
35  private readonly string $extensionKey,
36  private readonly ‪PackageInterface $package,
37  private readonly ?ContainerInterface $container = null,
38  private readonly ?object $emitter = null,
39  private array $storage = [],
40  ) {}
41 
42  public function ‪getExtensionKey(): string
43  {
44  return $this->extensionKey;
45  }
46 
48  {
49  return $this->package;
50  }
51 
52  public function ‪getContainer(): ?ContainerInterface
53  {
54  return $this->container;
55  }
56 
57  public function ‪getEmitter(): ?object
58  {
59  return $this->emitter;
60  }
61 
62  public function ‪hasStorageEntry(string ‪$identifier): bool
63  {
64  return isset($this->storage[‪$identifier]);
65  }
66 
68  {
69  if (!$this->‪hasStorageEntry($identifier)) {
70  throw new ‪InvalidPackageInitializationResultIdentifierException('No package initialization result entry exists for ' . ‪$identifier, 1706203511);
71  }
72 
73  return $this->storage[‪$identifier];
74  }
75 
76  public function ‪addStorageEntry(string ‪$identifier, mixed $data): void
77  {
78  $this->storage[‪$identifier] = new ‪PackageInitializationResult(‪$identifier, $data);
79  }
80 
81  public function ‪removeStorageEntry(string ‪$identifier): void
82  {
83  unset($this->storage[‪$identifier]);
84  }
85 }
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\getExtensionKey
‪getExtensionKey()
Definition: PackageInitializationEvent.php:42
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\getContainer
‪getContainer()
Definition: PackageInitializationEvent.php:52
‪TYPO3\CMS\Core\Package\PackageInterface
Definition: PackageInterface.php:24
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\getStorageEntry
‪getStorageEntry(string $identifier)
Definition: PackageInitializationEvent.php:67
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent
Definition: PackageInitializationEvent.php:30
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\removeStorageEntry
‪removeStorageEntry(string $identifier)
Definition: PackageInitializationEvent.php:81
‪TYPO3\CMS\Core\Package\PackageInitializationResult
Definition: PackageInitializationResult.php:24
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\getEmitter
‪getEmitter()
Definition: PackageInitializationEvent.php:57
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\hasStorageEntry
‪hasStorageEntry(string $identifier)
Definition: PackageInitializationEvent.php:62
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\__construct
‪__construct(private readonly string $extensionKey, private readonly PackageInterface $package, private readonly ?ContainerInterface $container=null, private readonly ?object $emitter=null, private array $storage=[],)
Definition: PackageInitializationEvent.php:34
‪TYPO3\CMS\Core\Package\Exception\InvalidPackageInitializationResultIdentifierException
Definition: InvalidPackageInitializationResultIdentifierException.php:25
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\addStorageEntry
‪addStorageEntry(string $identifier, mixed $data)
Definition: PackageInitializationEvent.php:76
‪TYPO3\CMS\Core\Package\Event\PackageInitializationEvent\getPackage
‪getPackage()
Definition: PackageInitializationEvent.php:47
‪TYPO3\CMS\Core\Package\Event
Definition: AfterPackageActivationEvent.php:18
‪TYPO3\CMS\Webhooks\Message\$identifier
‪identifier readonly string $identifier
Definition: FileAddedMessage.php:37