Skip to content

Commit

Permalink
Modernize generated code for Hydrators (#2665)
Browse files Browse the repository at this point in the history
  • Loading branch information
GromNaN authored Jul 1, 2024
1 parent 5082751 commit f57fcc3
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions lib/Doctrine/ODM/MongoDB/Hydrator/HydratorFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<EOF
/** @AlsoLoad("$name") */
if (!array_key_exists('%1\$s', \$data) && array_key_exists('$name', \$data)) {
// AlsoLoad("$name")
if (! array_key_exists('%1\$s', \$data) && array_key_exists('$name', \$data)) {
\$data['%1\$s'] = \$data['$name'];
}
Expand All @@ -183,7 +183,7 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<'EOF'
/** @Field(type="date") */
// Field(type: "date")
if (isset($data['%1$s'])) {
$value = $data['%1$s'];
%3$s
Expand All @@ -201,7 +201,7 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<EOF
/** @Field(type="{$mapping['type']}") */
// Field(type: "{$mapping['type']}")
if (isset(\$data['%1\$s']) || (! empty(\$this->class->fieldMappings['%2\$s']['nullable']) && array_key_exists('%1\$s', \$data))) {
\$value = \$data['%1\$s'];
if (\$value !== null) {
Expand All @@ -224,7 +224,7 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<'EOF'
/** @ReferenceOne */
// ReferenceOne
if (isset($data['%1$s']) || (! empty($this->class->fieldMappings['%2$s']['nullable']) && array_key_exists('%1$s', $data))) {
$return = $data['%1$s'];
if ($return !== null) {
Expand Down Expand Up @@ -275,11 +275,11 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$mappedByMapping = $targetClass->fieldMappings[$mapping['mappedBy']];
$mappedByFieldName = ClassMetadata::getReferenceFieldName($mappedByMapping['storeAs'], $mapping['mappedBy']);
$criteria = array_merge(
array($mappedByFieldName => $data['_id']),
isset($this->class->fieldMappings['%2$s']['criteria']) ? $this->class->fieldMappings['%2$s']['criteria'] : array()
[$mappedByFieldName => $data['_id']],
$this->class->fieldMappings['%2$s']['criteria'] ?? []
);
$sort = isset($this->class->fieldMappings['%2$s']['sort']) ? $this->class->fieldMappings['%2$s']['sort'] : array();
$return = $this->dm->getUnitOfWork()->getDocumentPersister($className)->load($criteria, null, array(), 0, $sort);
$sort = $this->class->fieldMappings['%2$s']['sort'] ?? [];
$return = $this->dm->getUnitOfWork()->getDocumentPersister($className)->load($criteria, null, [], 0, $sort);
$this->class->reflFields['%2$s']->setValue($document, $return);
$hydratedData['%2$s'] = $return;

Expand All @@ -293,8 +293,8 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<'EOF'
/** @Many */
$mongoData = isset($data['%1$s']) ? $data['%1$s'] : null;
// ReferenceMany & EmbedMany
$mongoData = $data['%1$s'] ?? null;
if ($mongoData !== null && ! is_array($mongoData)) {
throw HydratorException::associationTypeMismatch('%3$s', '%1$s', 'array', gettype($mongoData));
Expand All @@ -320,7 +320,7 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
$code .= sprintf(
<<<'EOF'
/** @EmbedOne */
// EmbedOne
if (isset($data['%1$s']) || (! empty($this->class->fieldMappings['%2$s']['nullable']) && array_key_exists('%1$s', $data))) {
$return = $data['%1$s'];
if ($return !== null) {
Expand Down Expand Up @@ -370,23 +370,20 @@ private function generateHydratorClass(ClassMetadata $class, string $hydratorCla
use Doctrine\ODM\MongoDB\Query\Query;
use Doctrine\ODM\MongoDB\Mapping\ClassMetadata;
use function array_key_exists;
use function gettype;
use function is_array;
/**
* THIS CLASS WAS GENERATED BY THE DOCTRINE ODM. DO NOT EDIT THIS FILE.
*/
class $hydratorClassName implements HydratorInterface
{
private \$dm;
private \$class;
public function __construct(DocumentManager \$dm, ClassMetadata \$class)
{
\$this->dm = \$dm;
\$this->class = \$class;
}
public function __construct(private DocumentManager \$dm, private ClassMetadata \$class) {}
public function hydrate(object \$document, array \$data, array \$hints = array()): array
public function hydrate(object \$document, array \$data, array \$hints = []): array
{
\$hydratedData = array();
\$hydratedData = [];
%s return \$hydratedData;
}
}
Expand Down

0 comments on commit f57fcc3

Please sign in to comment.