Deprecation: #95222 - Extbase ViewInterface

See Issue #95222

Description

To further streamline Fluid view related class inheritance and dependencies, the interface TYPO3\CMS\Extbase\Mvc\View\ViewInterface has been marked as deprecated and will be removed in v12.

Impact

This deprecation has little impact on TYPO3 v11: The interface is kept and still carried around in the core, no deprecation level log entry is raised.

The interface itself deviates from the casual view related classes only by requiring an implementation of method initializeView() which was never actively used, calling that method will vanish in v12. The second deviation is method setControllerContext(), and class ControllerContext is deprecated, too.

Affected Installations

The extension scanner will find usages of extbase ViewInterface as a strong match.

Migration

Some instances may rely on extensions that type hint TYPO3\CMS\Extbase\Mvc\View\ViewInterface, especially in the extbase action controller method initializeView(). The default implementation of that method in TYPO3\CMS\Extbase\Mvc\Controller\ActionController is empty. To simplify compatibility for extensions supporting both v11 and v12, that empty method will be removed in v12, but will still be called if it exists in classes extending ActionController. Extension authors should thus avoid calling parent::initializeView($view) in their implementation of initializeView() to prepare towards v12.

Apart from that, usages of TYPO3\CMS\Extbase\Mvc\View\ViewInterface should be changed to the more specific TYPO3\CMS\Fluid\View\StandaloneView - usually in non-extbase related classes, or to the less specific TYPO3Fluid\Fluid\View\ViewInterface.

If using a custom view implementing TYPO3\CMS\Extbase\Mvc\View\ViewInterface, keep in mind that auto configuration based on the interface will be dropped in v12, you may have to configure the service in Services.yaml manually.