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