[TASK] Allow multiple extractor services with the same priority
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / 8.0 / Breaking-73046-AliasAbstractNode-ViewHelperNodeForBackwardsCompatibility.rst
1
2 .. include:: ../../Includes.txt
3
4 ===================================================================================
5 Breaking: #73046 - Alias AbstractNode -> ViewHelperNode for backwards compatibility
6 ===================================================================================
7
8 See :issue:`73046`
9
10 Description
11 ===========
12
13 `ViewHelperInterface::compile()` in standalone Fluid now requires an actual `ViewHelperNode` instead of `AbstractNode` as it was before.
14 The reason for changing this should be fairly obvious. In order to preserve signature compatibility an alias is put in place.
15
16 The alias is created so that `TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode` becomes an alias of `TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode`.
17 This is obviously less than ideal but solves the problem immediately and prioritises not breaking the public API by breaking the non-public API.
18
19
20 Impact
21 ======
22
23 This signature change means that ViewHelpers which implement a custom `compile()` method must update their signature (does not apply to ViewHelpers implementing
24 only renderStatic). Two ViewHelpers in TYPO3 CMS Fluid were migrated as part of the standalone Fluid
25 merge - but third-party ViewHelpers would require either migration or an alias.
26
27 * Overridden TemplateParsers (before standalone Fluid merge) might not work, depending on the nature of overrides (conditions
28   checking class names may fail)
29 * Custom Nodes (implemented via an overridden TemplateParser, before standalone Fluid) would break either in function or form
30   (incompatible constructor signatures on PHP7 at least)
31
32
33 Affected Installations
34 ======================
35
36 Any TYPO3 site using an extension which replaces or directly interacts with TemplateParser or TemplateCompiler from Fluid. Only
37 known affected community extension is at this point EXT:builder, specifically the template validation/analysis feature.
38
39
40 Migration
41 =========
42
43 Change any reference to classes in `TYPO3\CMS\Fluid\Core\TemplateParser` to `TYPO3Fluid\Fluid\Core\TemplateParser`.
44
45 .. index:: PHP-API, Fluid