‪TYPO3CMS  ‪main
SiteSettings.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 
21 
27 final class ‪SiteSettings implements \JsonSerializable
28 {
29  private array ‪$flatSettings;
30  public function ‪__construct(
31  private readonly array $settings
32  ) {
33  $this->flatSettings = $this->‪isEmpty() ? [] : ‪ArrayUtility::flattenPlain($settings);
34  }
35 
36  public function ‪has(string ‪$identifier): bool
37  {
38  return isset($this->settings[‪$identifier]);
39  }
40 
41  public function ‪isEmpty(): bool
42  {
43  return $this->settings === [];
44  }
45 
46  public function get(string ‪$identifier, mixed $defaultValue = null): mixed
47  {
48  return $this->settings[‪$identifier] ?? $this->flatSettings[‪$identifier] ?? $defaultValue;
49  }
50 
51  public function ‪getAll(): array
52  {
53  return $this->settings;
54  }
55 
56  public function ‪getAllFlat(): array
57  {
59  }
60 
61  public function ‪jsonSerialize(): mixed
62  {
63  return json_encode($this->settings);
64  }
65 }
‪TYPO3\CMS\Core\Utility\ArrayUtility\flattenPlain
‪static flattenPlain(array $array)
Definition: ArrayUtility.php:496
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\__construct
‪__construct(private readonly array $settings)
Definition: SiteSettings.php:30
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\$flatSettings
‪array $flatSettings
Definition: SiteSettings.php:29
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\getAllFlat
‪getAllFlat()
Definition: SiteSettings.php:56
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\jsonSerialize
‪jsonSerialize()
Definition: SiteSettings.php:61
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\getAll
‪getAll()
Definition: SiteSettings.php:51
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\isEmpty
‪isEmpty()
Definition: SiteSettings.php:41
‪TYPO3\CMS\Core\Site\Entity
Definition: NullSite.php:18
‪TYPO3\CMS\Core\Utility\ArrayUtility
Definition: ArrayUtility.php:26
‪TYPO3\CMS\Core\Site\Entity\SiteSettings
Definition: SiteSettings.php:28
‪TYPO3\CMS\Core\Site\Entity\SiteSettings\has
‪has(string $identifier)
Definition: SiteSettings.php:36
‪TYPO3\CMS\Webhooks\Message\$identifier
‪identifier readonly string $identifier
Definition: FileAddedMessage.php:37