如何为 TYPO3 9.5 返工 TYPO3 8 AbstractViewHelper

How to rework TYPO3 8 AbstractViewHelper for TYPO3 9.5

我们有一个名为 AmazMenu.php 的 class,它从 class AbstractViewHelper 扩展而来。它在 600 行代码上做了一些事情,但现在 Baseclass 被删除了。它是 documented breaking change 但我无法弄清楚从现在开始使用什么方法以及如何重构 class 使用的东西,例如:

public function initializeArguments()
private function recursiveTree($tree, $maxDepth = 0, $depth = 0, $parentIsActive = false)
private function renderTree()
public function render()

因为我想如果 Baseclass 被删除,目录 ViewHelpers 也会消失 - 所以我们的 ViewHelper 处理的逻辑必须在其他地方实现 - 但是是什么概念?

非常感谢帮助

您可以尝试使用模板引擎的抽象类:TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper。在大多数情况下,这是 TYPO3 本身的变化,您可以在此处看到:https://review.typo3.org/c/Packages/TYPO3.CMS/+/54946/4/typo3/sysext/backend/Classes/ViewHelpers/AvatarViewHelper.php

同样按照迁移步骤,不要再使用render()方法,而是使用renderStatic()。这也记录在这里:https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/8-Fluid/8-developing-a-custom-viewhelper.html#renderstatic-method