TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-66429:
|
||||
|
||||
======================================================
|
||||
Breaking: #66429 - Remove IdentityMap from persistence
|
||||
======================================================
|
||||
|
||||
See :issue:`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:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$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);
|
||||
}
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:extbase
|
||||
Reference in New Issue
Block a user