我在供应商命名空间中创建了一个带有插件的扩展。到目前为止一切正常。所有的类都以命名空间声明 namespace \VENDOR\ExtensionName\...
开头并且typo3 自动加载它们就好了。
但是,当我添加 ViewHelper 时,问题就开始了。我把这个放在 \VENDOR\ExtensionName\ViewHelpers
命名空间。我在 Fluid 模板中添加了命名空间,如下所示:{namespace ns=VENDOR\ExtensionName\ViewHelpers}
.当我在模板中使用 <ns:myViewHelper />
调用它时,我只是收到“糟糕...”错误消息:
Could not analyse class:VENDOR\ExtensionName\ViewHelpers\MyViewHelperViewHelper maybe not loaded or no autoloader?
当我将 ViewHelper 放入
\TYPO3\...
时,也会发生同样的情况。命名空间。如何在具有供应商命名空间的扩展中正确实现 ViewHelper?
最佳答案
命名空间声明不能有前导反斜杠。
取而代之的是 \Vendor\ExtensionName\ViewHelpers;
它必须是 Vendor\ExtensionName\ViewHelpers;
http://www.php.net/manual/en/language.namespaces.nested.php
关于namespaces - TYPO3:在具有供应商命名空间的扩展中编写一个 ViewHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22729440/