‪TYPO3CMS  ‪main
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 
27  public function ‪__construct(array ‪$configuration)
28  {
29  $this->configuration = ‪$configuration;
30  }
31 
32  public function ‪hasClass(string $className): bool
33  {
34  return array_key_exists($className, $this->configuration);
35  }
36 
37  public function ‪getConfigurationFor(string $className): ?array
38  {
39  return $this->configuration[$className] ?? null;
40  }
41 
48  public function ‪getSubClasses(string $className): array
49  {
50  return $this->‪resolveSubClassesRecursive($className);
51  }
52 
53  private function ‪resolveSubClassesRecursive(string $className, array $subClasses = []): array
54  {
55  foreach ($this->configuration[$className]['subclasses'] ?? [] as $subclass) {
56  if (in_array($subclass, $subClasses, true)) {
57  continue;
58  }
59 
60  $subClasses[] = $subclass;
61  $subClasses = $this->‪resolveSubClassesRecursive($subclass, $subClasses);
62  }
63 
64  return $subClasses;
65  }
66 }
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\getSubClasses
‪array getSubClasses(string $className)
Definition: ClassesConfiguration.php:47
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\getConfigurationFor
‪getConfigurationFor(string $className)
Definition: ClassesConfiguration.php:36
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\resolveSubClassesRecursive
‪resolveSubClassesRecursive(string $className, array $subClasses=[])
Definition: ClassesConfiguration.php:52
‪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
‪hasClass(string $className)
Definition: ClassesConfiguration.php:31
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration
Definition: ClassesConfiguration.php:21
‪TYPO3\CMS\Extbase\Persistence\ClassesConfiguration\__construct
‪__construct(array $configuration)
Definition: ClassesConfiguration.php:26