1.. include:: ../../Includes.txt 2 3============================================================= 4Breaking: #88638 - Streamlined SoftRefParser reference lookup 5============================================================= 6 7See :issue:`88638` 8 9Description 10=========== 11 12The Soft Reference Parser is a registry to allow to find parsers (PHP Objects), 13for a given Parser Type (images, internal links, email links) to keep track of 14referenced records within arbitrary data (e.g. RTE text-fields). 15 16Parsers can be added or overridden via the hook registry 17:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['softRefParser'][$parserType]`. 18 19Previously, the API method for fetching the proper parsers 20:php:`TYPO3\CMS\Backend\Utility\BackendUtility::softRefParserObj()` kept a runtime cache of created objects 21per type within a global PHP array (:php:`T3_VAR`). This allowed to create objects 22only once, even if there are multiple necessary parts required. 23 24TYPO3's Core SoftRefParser does not keep any state, but the class now has a 25:php:`SingletonInterface`, which means that the object is now a re-used object 26as before. 27 28 29Impact 30====== 31 32Calling the SoftRefParser factory method does not keep state of the parser 33objects via :php:`$GLOBALS['T3_VAR']['softRefParser']` anymore. 34 35Instead, :php:`SingletonInterface` is recommended for re-using SoftRefParser objects 36if they need to keep state. 37 38 39Affected Installations 40====================== 41 42TYPO3 installations with extensions that use the API with custom parsers, 43or the global variable directly. 44 45 46Migration 47========= 48 49Replace the global variable access via the API call to :php:`TYPO3\CMS\Backend\Utility\BackendUtility`, if this 50is applicable. 51 52If a custom parser is in use, it is recommended to evaluate whether it contains 53re-usable data and switch to :php:`SingletonInterface` instead. 54 55.. index:: Backend, FullyScanned