---
title: "Feature: #94741 - Register SoftReference parsers via DI"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-94741"
source: "Changelog/11.4/Feature-94741-RegisterSoftReferenceParsersViaDI.rst"
modified: "2026-09-14T09:47:36+00:00"
---

# Feature: #94741 - Register SoftReference parsers via DI

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

## Description

Parsers for [soft references](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SoftReferences/Index.html#soft-references) can now be
registered via dependency injection in the corresponding
`Configuration/Services.(yaml|php)` file of your extension. This is done
by tagging your class with the new tag name `softreference.parser` and
providing the parser key for the attribute `parserKey`.

Example:

```yaml
VENDOR\Extension\SoftReference\YourSoftReferenceParser:
  tags:
    - name: softreference.parser
      parserKey: your_key
```

In addition, parsers now have to implement
`\TYPO3\CMS\Core\DataHandling\SoftReference\SoftReferenceParserInterface`.
This interface describes the `parse()` method, which is very similar to the
old method `findRef()`. The difference is that `$parserKey` (former
known as `$spKey`) and `$parameters` (former known as
`$spParams`) can now be optionally set with the `setParserKey()` method.
The key can be retrieved with the `getParserKey()` method.

The return type has also been changed to
`\TYPO3\CMS\Core\DataHandling\SoftReference\SoftReferenceParserResult`.
This model holds the former result array key entries `content` and
`elements` as properties and has appropriate getter methods for them. It
should be created by its own factory method
`SoftReferenceParserResult::create()`, which expects both above-mentioned
arguments to be provided. If the result is empty,
`SoftReferenceParserResult::createWithoutMatches()` should be used instead.

## Impact

Developers can register their user-defined soft reference parsers in their
`Configuration/Services.(yaml|php)` file. In addition, parser have to
implement the new interface
`\TYPO3\CMS\Core\DataHandling\SoftReference\SoftReferenceParserInterface`.

## Related

-   [RegisterSoftReferenceParsersViaDI (Deprecation)](https://docs.typo3.org/permalink/changelog:deprecation-94741)
-   [SoftReferenceIndex (Deprecation)](https://docs.typo3.org/permalink/changelog:deprecation-94687)
