【问题标题】:TYPO3 8.X - autoload HookTYPO3 8.X - 自动加载钩子
【发布时间】:2017-09-03 14:19:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: typo3 typo3-extensions typo3-8.x


    【解决方案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/

    【讨论】:

      【解决方案2】:

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

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

      添加autoload 部分:

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

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

      之后你可以输入composer dump-autoload 并且你的类应该被加载了。

      【讨论】:

      • 不,我没有使用 composer - 但非常感谢您的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多