Breaking: #66429 - Remove IdentityMap from persistence 

See forge#66429

Description 

The IdentityMap class and its usage has been removed from the Extbase persistence.

Impact 

Upgraded installations will throw a ReflectionException. Accessing the previously existing IdentityMap properties within DataMapper and Repository will now fail. Creating IdentityMap instances is not possible anymore.

Affected Installations 

All installations, especially extensions using the IdentityMap class directly or accessing the properties within DataMapper or Repository.

Migration 

The Extbase reflection cache of existing installations needs to be cleared once.

Existing code can be migrated to the persistence Session class which provides a drop-in replacement for the IdentityMap.

Usage example 

How to use the Session class to retrieve objects by an identifier:

$session = GeneralUtility::makeInstance(ObjectManager::class)->get(\TYPO3\CMS\Extbase\Persistence\Generic\Session::class);
$session->registerObject($object, $identifier);
if ($session->hasIdentifier($identifier)) {
	$object = $session->getObjectByIdentifier($identifier, $className);
}
Copied!