1
0
mirror of synced 2025-02-02 13:31:45 +03:00

Extract private method to retrieve discriminator values

This commit is contained in:
Luís Cobucci 2018-02-19 11:05:30 +01:00
parent 2905b435db
commit f2da5bc93e
No known key found for this signature in database
GPG Key ID: EC61C5F01750ED3C

View File

@ -396,21 +396,12 @@ abstract class AbstractHydrator
// the current discriminator value must be saved in order to disambiguate fields hydration,
// should there be field name collisions
if ($classMetadata->parentClasses && isset($this->_rsm->discriminatorColumns[$ownerMap])) {
$discriminatorValues = array_map(
function (string $subClass) : string {
return (string) $this->getClassMetadata($subClass)->discriminatorValue;
},
$classMetadata->subClasses
);
$discriminatorValues[] = (string) $classMetadata->discriminatorValue;
return $this->_cache[$key] = \array_merge(
$columnInfo,
[
'discriminatorColumn' => $this->_rsm->discriminatorColumns[$ownerMap],
'discriminatorValue' => $classMetadata->discriminatorValue,
'discriminatorValues' => $discriminatorValues,
'discriminatorValues' => $this->getDiscriminatorValues($classMetadata),
]
);
}
@ -463,6 +454,23 @@ abstract class AbstractHydrator
return null;
}
/**
* @return string[]
*/
private function getDiscriminatorValues(ClassMetadata $classMetadata) : array
{
$values = array_map(
function (string $subClass) : string {
return (string) $this->getClassMetadata($subClass)->discriminatorValue;
},
$classMetadata->subClasses
);
$values[] = (string) $classMetadata->discriminatorValue;
return $values;
}
/**
* Retrieve ClassMetadata associated to entity class name.
*