mirror of
https://github.com/doctrine/orm.git
synced 2026-03-24 15:02:22 +01:00
47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Doctrine\ORM\Cache;
|
|
|
|
use function implode;
|
|
use function ksort;
|
|
use function str_replace;
|
|
use function strtolower;
|
|
|
|
/**
|
|
* Defines entity classes roles to be stored in the cache region.
|
|
*/
|
|
class EntityCacheKey extends CacheKey
|
|
{
|
|
/**
|
|
* The entity identifier
|
|
*
|
|
* @readonly Public only for performance reasons, it should be considered immutable.
|
|
* @var array<string, mixed>
|
|
*/
|
|
public $identifier;
|
|
|
|
/**
|
|
* The entity class name
|
|
*
|
|
* @readonly Public only for performance reasons, it should be considered immutable.
|
|
* @var class-string
|
|
*/
|
|
public $entityClass;
|
|
|
|
/**
|
|
* @param class-string $entityClass The entity class name. In a inheritance hierarchy it should always be the root entity class.
|
|
* @param array<string, mixed> $identifier The entity identifier
|
|
*/
|
|
public function __construct($entityClass, array $identifier)
|
|
{
|
|
ksort($identifier);
|
|
|
|
$this->identifier = $identifier;
|
|
$this->entityClass = $entityClass;
|
|
|
|
parent::__construct(str_replace('\\', '.', strtolower($entityClass) . '_' . implode(' ', $identifier)));
|
|
}
|
|
}
|