【问题标题】:TYPO3 10.4 Symfony Expression Language - class not foundTYPO3 10.4 Symfony 表达式语言 - 找不到类
【发布时间】:2020-12-14 00:23:26
【问题描述】:

我正在尝试使用 Symfony 表达式语言自定义我的 TypoScript 条件。 我已按照example of typo3 的说明进行操作。

所以我使用示例挂钩创建了一个新文件Example_Ext/Configuration/ExpressionLanguage.php,并在Example_Ext/Classes/ExpressionLanguage 中创建了两个文件CustomTypoScriptConditionProvider.php 和CustomConditionFunctionsProvider.php

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

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

亲切的问候。

【问题讨论】:

  • 你在使用作曲家吗?
  • 没有。我通过从 zip 复制文件来安装拼写错误,然后使用拼写错误的安装文件。

标签: classnotfound typo3-10.x


【解决方案1】:

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

可以通过另一个类提供附加功能,该类必须由 CustomTypoScriptConditionProvider PHP 类返回:

<?php

namespace Vendor\ExtensionName\TypoScript;

如上所述,我在Example_Ext/Classes/ExpressionLanguage 中添加了一个新文件,但根据此代码sn-p,即命名空间,该类必须在Example_Ext/Classes/TypoScript 中。

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

所以在将命名空间修复为Example_Ext/Classes/ExpressionLanguage 之后,现在一切正常。

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

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2020-08-27
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多