找不到ViewHelper

Mic*_*ach 2 namespaces typo3 fluid extbase

我花了8个多小时才弄清楚它没有得到解决.我想要的只是在Fluid模板中调用ViewHelper.我以前这样做过,我从来没有遇到类似的问题.

我的ViewHelper文件位于

EXTDIR/VendorName/Classes/ViewHelpers/SomeViewHelper.php.
Run Code Online (Sandbox Code Playgroud)

在我的流体模板中,我使用命名空间

{namespace k=VendorName\Extname\ViewHelpers}.
Run Code Online (Sandbox Code Playgroud)

在模板的某处,我将ViewHelper称为

{k:some()}.
Run Code Online (Sandbox Code Playgroud)

ViewHelper脚本"SomeViewHelper.php"包含以下代码:

class SomeViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
    public function initializeArguments() { }

    public function render() {
        return 7;
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,整个过程非常简单,页面上的预期输出应为"7".但是在前端调用页面会产生以下错误消息:

Oops, an error occurred!

Could not analyse class:VendorName\Extname\ViewHelpers\SomeViewHelper maybe not loaded
or no autoloader?"
Run Code Online (Sandbox Code Playgroud)

关于这里可能出错的任何提示?

干杯迈克尔

小智 7

如果所有内容拼写正确,甚至在删除系统/配置缓存后,ViewHelper也不会出现(无法分析.. /可能未加载或没有自动加载器),请尝试在扩展管理器中重新安装扩展程序!


der*_*sen 5

您的viewHelper源文件路径错误。

正确的路径应该是(无供应商名称):

EXTDIR/Classes/ViewHelpers/SomeViewHelper.php
Run Code Online (Sandbox Code Playgroud)

您还需要确保为viewHelper使用了正确的名称空间(如果您使用的是TYPO3 6+,则不要使用旧的Tx_类,而要使用名称空间)。

<?php
namespace VendorName\Extname\ViewHelpers;

class SomeViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
    public function initializeArguments() { }

    public function render() {
        return 7;
    }
}
Run Code Online (Sandbox Code Playgroud)