mirror of
https://github.com/doctrine/orm.git
synced 2026-04-28 17:03:23 +02:00
5f39343bfd
* 2.20.x: Remove vendor prefix of PHPDoc referencing class-string (#11643) Deprecate the `\Doctrine\ORM\Query\Parser::setCustomOutputTreeWalker()` method (#11641)
51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Doctrine\ORM\Cache;
|
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
|
|
use function array_map;
|
|
|
|
class EntityCacheEntry implements CacheEntry
|
|
{
|
|
/**
|
|
* @param class-string $class The entity class name
|
|
* @param array<string,mixed> $data The entity map data
|
|
*/
|
|
public function __construct(
|
|
public readonly string $class,
|
|
public readonly array $data,
|
|
) {
|
|
}
|
|
|
|
/**
|
|
* Creates a new EntityCacheEntry
|
|
*
|
|
* This method allows Doctrine\Common\Cache\PhpFileCache compatibility
|
|
*
|
|
* @param array<string,mixed> $values array containing property values
|
|
*/
|
|
public static function __set_state(array $values): self
|
|
{
|
|
return new self($values['class'], $values['data']);
|
|
}
|
|
|
|
/**
|
|
* Retrieves the entity data resolving cache entries
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function resolveAssociationEntries(EntityManagerInterface $em): array
|
|
{
|
|
return array_map(static function ($value) use ($em) {
|
|
if (! ($value instanceof AssociationCacheEntry)) {
|
|
return $value;
|
|
}
|
|
|
|
return $em->getReference($value->class, $value->identifier);
|
|
}, $this->data);
|
|
}
|
|
}
|