0

我目前正在尝试编写一个 Hook 来向 Flexform 添加额外的字段。因此我遵循了本教程:https ://docs.typo3.org/typo3cms/extensions/news/DeveloperManual/ExtendNews/ExtendFlexforms/Index.html?fref=gc&dti=250938618364487#extend-flexforms-with-custom-fields

但是,当我转到包含来自 Flexform 的选项的后端页面时,我收到以下错误:找不到类 'ID\SearchBarAdditional\Hooks\FlexFormHook'。

我在 ext_localconf 中注册 Hook,如下所示:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class]['flexParsing'][] = \ID\SearchBarAdditional\Hooks\FlexFormHook::class;

我的钩子文件在这里:typo3conf/ext/search_bar_additional/Classes/Hooks 并以这种方式初始化:

namespace ID\SearchBarAdditional\Hooks;
class FlexFormHook { /* ... */

因此,在我看来,一切都在正确的位置并且应该可以工作,但是我仍然收到 TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("ID\SearchBarAdditional\Hooks\FlexFormHook") 失败的错误。

你们有什么想法,可能是什么问题?我是否必须在 \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 或类似的东西中注册 Hook(因为发布的代码真的是我唯一做过的事情)?

4

2 回答 2

3

这是典型的类加载错误。检查您是否将 PHP 命名空间添加到作曲家自动加载和/或ext_emconf.php并确保您的文件名根据 PSR-4 正确命名。如果有疑问,您可以检查由供应商/作曲家中的作曲家生成的类加载映射文件(如果您使用作曲家进行类加载,您绝对应该这样做)。

于 2017-09-02T14:16:27.453 回答
0

我发现了错误:我的 Hook 确实没有加载。我试图将它“包含”在 ext_localconf.php 中,它现在正在工作。但由于这当然是一个极其丑陋的解决方案,所以我发布了第二个问题,如何在此处加载钩子:Typo3 8.X - autoload Hook

谢谢您的帮助!!!

于 2017-09-03T14:26:29.307 回答