Typo3 8.2 ViewHelper命名空间

Seb*_*ger 0 namespaces typo3 fluid view-helpers

我试图在Typo3扩展中创建多个Viewhelpers。

    <?php
namespace PdvPolymer\ViewHelpers;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;

class ButtonUpViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
{...
Run Code Online (Sandbox Code Playgroud)

ViewHelper位于目录扩展名\ Classes \ ViewHelpers中

当我打电话给它时,这很好用

<div xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers" xmlns:p="http://typo3.org/ns/Extension/ViewHelpers">
<p:buttonUp></p:buttonUp>
</div>
Run Code Online (Sandbox Code Playgroud)

但是现在我已经尝试将ViewHelper放在诸如extension \ Classes \ ViewHelpers \ Custom之类的子目录中

现在,ViewHelper的新命名空间为

namespace Extension\ViewHelpers\Custom;
Run Code Online (Sandbox Code Playgroud)

现在我用以下方式调用ViewHelper

<p:custom.buttonUp></p:custom.buttonUp>
Run Code Online (Sandbox Code Playgroud)

但是现在我得到一个类似的错误:

Oops, an error occurred! Code: 2016091908135339232bbd 
Run Code Online (Sandbox Code Playgroud)

我的问题是,我错了什么?Typo3中的内部Fluid-Extension像我一样都一样。我检查了!

有人知道吗?

Geo*_*ger 5

有2个不同的问题。

首先,我建议避免在名称空间声明中使用子目录,而只使用xmlns:p="http://typo3.org/ns/Extension/ViewHelpers"。调用ViewHelper时,请始终在模板中添加子目录路径,例如

 <p:custom.buttonUp></p:custom.buttonUp>
Run Code Online (Sandbox Code Playgroud)

您不需要两次声明。

2)关于错误处理

使用TypoScript config.contentObjectExceptionHandler = 0在您的开发系统上将其关闭,您将看到一条更有用的消息。您可以在docs中找到更多信息。