Breaking: #82414 - CMS ViewHelper base classes removed¶
See forge#82414
Description¶
The following ViewHelper base classes have been removed:
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition
Aliases are in place, but the following key differences may break your code:
Render method arguments are no longer possible at all
The property
$this->controllerContext
is no longer defined
Impact¶
Render method arguments have been deprecated for a long time and should already have been migrated in your code. If you still have ViewHelpers using render method arguments, these will break after this change.
Affected Installations¶
All instances which use a ViewHelper that either contains render method arguments, extends from one
of the base classes above, or or accesses $this->controllerContext
.
Migration¶
Migrate to use renderStatic
methods (see examples in TYPO3 Core, EXT:fluid) to not use
render method arguments.
ViewHelpers which access $this->controllerContext
can instead access
$this->renderingContext->getControllerContext()
.
Instead of using the (now removed) abstract classes from ext:fluid, use the classes
supplied in vendor/typo3fluid/fluid
:
TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper
TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper
TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentDefinition
and change your code accordingly.
Migrating this can be done with search-and-replace for all common use cases.