---
title: "Breaking: #88638 - Streamlined SoftRefParser reference lookup"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-88638"
source: "Changelog/10.0/Breaking-88638-StreamlinedSoftRefParserReferenceLookup.rst"
modified: "2026-09-15T10:46:36+00:00"
---

# Breaking: #88638 - Streamlined SoftRefParser reference lookup

See [forge#88638](https://forge.typo3.org/issues/88638)

## Description

The Soft Reference Parser is a registry to allow to find parsers (PHP Objects),
for a given Parser Type (images, internal links, email links) to keep track of
referenced records within arbitrary data (e.g. RTE text-fields).

Parsers can be added or overridden via the hook registry
`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['softRefParser'][$parserType]`.

Previously, the API method for fetching the proper parsers
`TYPO3\CMS\Backend\Utility\BackendUtility::softRefParserObj()` kept a runtime cache of created objects
per type within a global PHP array (`T3_VAR`). This allowed to create objects
only once, even if there are multiple necessary parts required.

TYPO3's Core SoftRefParser does not keep any state, but the class now has a
`SingletonInterface`, which means that the object is now a re-used object
as before.

## Impact

Calling the SoftRefParser factory method does not keep state of the parser
objects via `$GLOBALS['T3_VAR']['softRefParser']` anymore.

Instead, `SingletonInterface` is recommended for re-using SoftRefParser objects
if they need to keep state.

## Affected Installations

TYPO3 installations with extensions that use the API with custom parsers,
or the global variable directly.

## Migration

Replace the global variable access via the API call to `\TYPO3\CMS\Backend\Utility\BackendUtility`, if this
is applicable.

If a custom parser is in use, it is recommended to evaluate whether it contains
re-usable data and switch to `SingletonInterface` instead.
