0

如何在 TYPO3 中自动加载钩子?

我在 中注册它ext_localconf.php,但它没有自动加载(除非我将它“包含”在同一个文件中,这当然是一个非常丑陋的解决方案)。我查看了其他扩展,但我没有找到需要钩子的地方。它不应该在 ext_emconf 中自动加载吗?

'autoload' => [
    'psr-4' => [
        'ID\\IndexedSearchAutocomplete\\' => 'Classes'
    ],
],

但是当不使用我丑陋的解决方案时,我会收到错误,即 GeneralUtility::makeInstance 找不到我的文件。

4

2 回答 2

1

这有帮助吗?http://insight.helhum.io/post/130876393595/how-to-configure-class-loading-for-extensions-in

本文描述了有关类加载的选项。

您可能想检查您的课程是否符合 psr-4 标准:http ://www.php-fig.org/psr/psr-4/

于 2017-09-03T18:47:52.710 回答
0

我假设您在项目中使用了作曲家。Composer 执行整个类的自动加载。它“知道”作曲家所需的所有扩展类(在require您的部分中列出composer.json)。

当然,您可以向项目添加扩展,而无需使用 Composer。我想,这就是你在这里所做的。在这种情况下,你必须告诉作曲家你的composer.json.

添加一个autoload部分:

"autoload": {
    "psr-4": {
        "ID\\IndexedSearchAutocomplete\\": "web/typo3conf/ext/indexed_search_autocomplete/Classes"
    }
}

当然,您的 FQCN 必须与 Classes 文件夹上方的路径匹配(这就是 psr-4 的含义)。

之后,您可以键入composer dump-autoload并加载您的类。

于 2017-09-03T15:33:21.110 回答