‪TYPO3CMS  11.5
ClassesConfiguration.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 {
25  private ‪$configuration;
26 
30  public function ‪__construct(array ‪$configuration)
31  {
32  $this->configuration = ‪$configuration;
33  }
34 
39  public function ‪hasClass(string $className): bool
40  {
41  return array_key_exists($className, $this->configuration);
42  }
43 
48  public function ‪getConfigurationFor(string $className): ?array
49  {
50  return $this->configuration[$className] ?? null;
51  }
52 
60  public function ‪getSubClasses(string $className): array
61  {
62  return $this->‪resolveSubClassesRecursive($className);
63  }
64 
70  private function ‪resolveSubClassesRecursive(string $className, array $subClasses = []): array
71  {
72  foreach ($this->configuration[$className]['subclasses'] ?? [] as $subclass) {
73  if (in_array($subclass, $subClasses, true)) {
74  continue;
75  }
76 
77  $subClasses[] = $subclass;
78  $subClasses = $this->‪resolveSubClassesRecursive($subclass, $subClasses);
79  }
80 
81  return $subClasses;
82  }
83 }
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\getConfigurationFor
‪array null getConfigurationFor(string $className)
Definition: ClassesConfiguration.php:47
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\getSubClasses
‪array getSubClasses(string $className)
Definition: ClassesConfiguration.php:59
‪TYPO3\CMS\Extbase\Persistence
Definition: ClassesConfiguration.php:18
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\$configuration
‪array $configuration
Definition: ClassesConfiguration.php:24
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\hasClass
‪bool hasClass(string $className)
Definition: ClassesConfiguration.php:38
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration
Definition: ClassesConfiguration.php:21
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\__construct
‪__construct(array $configuration)
Definition: ClassesConfiguration.php:29
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\resolveSubClassesRecursive
‪array resolveSubClassesRecursive(string $className, array $subClasses=[])
Definition: ClassesConfiguration.php:69