Feature: #94741 - Register SoftReference parsers via DI¶
See forge#94741
Description¶
Parsers for 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:
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
.