HierarchyDiscriminatorResolver.php
9 months ago
IdentifierFlattener.php
9 months ago
LockSqlHelper.php
9 months ago
PersisterHelper.php
9 months ago
index.php
9 months ago
HierarchyDiscriminatorResolver.php
27 lines
| 1 | <?php |
| 2 | declare (strict_types=1); |
| 3 | namespace MailPoetVendor\Doctrine\ORM\Utility; |
| 4 | if (!defined('ABSPATH')) exit; |
| 5 | use MailPoetVendor\Doctrine\ORM\EntityManagerInterface; |
| 6 | use MailPoetVendor\Doctrine\Persistence\Mapping\ClassMetadata; |
| 7 | final class HierarchyDiscriminatorResolver |
| 8 | { |
| 9 | private function __construct() |
| 10 | { |
| 11 | } |
| 12 | public static function resolveDiscriminatorsForClass(ClassMetadata $rootClassMetadata, EntityManagerInterface $entityManager) : array |
| 13 | { |
| 14 | $hierarchyClasses = $rootClassMetadata->subClasses; |
| 15 | $hierarchyClasses[] = $rootClassMetadata->name; |
| 16 | $discriminators = []; |
| 17 | foreach ($hierarchyClasses as $class) { |
| 18 | $currentMetadata = $entityManager->getClassMetadata($class); |
| 19 | $currentDiscriminator = $currentMetadata->discriminatorValue; |
| 20 | if ($currentDiscriminator !== null) { |
| 21 | $discriminators[$currentDiscriminator] = null; |
| 22 | } |
| 23 | } |
| 24 | return $discriminators; |
| 25 | } |
| 26 | } |
| 27 |