TYPO3 10.4 Symfony 表达式语言 - class 未找到

TYPO3 10.4 Symfony Expression Language - class not found

我正在尝试使用 Symfony 表达式语言自定义我的 TypoScript 条件。 我已按照 example of typo3.

的说明进行操作

所以我使用示例挂钩创建了一个新文件 Example_Ext/Configuration/ExpressionLanguage.php,并且还在 Example_Ext/Classes/ExpressionLanguage

中创建了两个文件 CustomTypoScriptConditionProvider.phpCustomConditionFunctionsProvider.php

但是,一旦我加载我的扩展程序,我就会收到错误 Class \Vendor\Example_Ext\ExpressionLanguage\CustomTypoScriptConditionProvider not found,我不知道为什么。 我还清除了所有缓存,un-/loaded 扩展几次,并清除了另一个线程中提到的自动加载器。但它仍然行不通。我知道这个错误发生在第一个钩子 ExpressionLanguage.php 中,因为如果我更改文件的路径,错误也会更改为新路径。

有什么解决这个问题的建议吗?

亲切的问候。

调试了很久才发现错误。 显然,这个例子很容易被误解

Additional functions can be provided through another class, which has to be returned by CustomTypoScriptConditionProvider PHP class:

<?php

namespace Vendor\ExtensionName\TypoScript;

如上所述,我在 Example_Ext/Classes/ExpressionLanguage 中添加了一个新文件,但根据此代码片段,即命名空间,此 class 必须位于 Example_Ext/Classes/TypoScript.

其次,我的 composer.json 文件有问题。 似乎有些错误阻止了自动加载器加载 Example_Ext 扩展。因此,根据命名空间,除了不存在的 class 之外,无法找到 class。

因此在将命名空间固定为 Example_Ext/Classes/ExpressionLanguage 之后一切正常。

请注意: 前缀为 useruser_ 的自定义函数不可调用。