Некоторые вещи изменились между v7 и v9 ViewHelpers в TYPO3 Fluid .
➊ Вы должны выйти из абстрактного класса TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper
.
➋ Вы должны зарегистрировать аргументы вы переходите к ViewHelper.
➌ Ваш ViewHelper больше похож на Condition-ViewHelper , чем Abstract-ViewHelper .
Первая точка не требует пояснений , Просто измените имя базового класса (полное имя класса). Для второго пункта вы можете использовать дополнительный метод initializeArguments()
. Например:
public function initializeArguments(): void
{
parent::initializeArguments();
$this->registerArgument('value', 'type', 'description');
...
}
Вы можете найти пример здесь .
Однако ваш ViewHelper, похоже, проверяет условие (" это элемент в list?"," затем ..."," else ..."). Следовательно, может быть лучше реализовать Condition-ViewHelper .
. Этот тип ViewHelper расширяет класс TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper
и оценивает условие, используя метод verdict()
вместо render()
. или renderStatic()
.
Вы можете найти пример простого Condition-ViewHelper здесь .