【问题标题】:Own TYPO3 Extension with composer: Could not analyse class maybe not loaded or no autoloader?自己的 TYPO3 扩展与作曲家:无法分析类可能未加载或没有自动加载器?
【发布时间】:2017-09-07 01:08:26
【问题描述】:

我刚刚写了我的第一个 TYPO3 扩展,但它不起作用:( 我在 TYPO3 前端收到此错误消息:

无法分析类: “Snowboard\SnowboardStaff\Controller\SnowboardTeacherController”也许 未加载或没有自动加载器?班级 Snowboard\SnowboardStaff\Controller\SnowboardTeacherController 确实 不存在

我用 composer 安装了 TYPO3。那么这个问题可能与此有关吗?

我已经尝试了很多,所以请帮助我:)

【问题讨论】:

  • 我对 TYPO3 了解不多,但也许你需要在composer.json 中手动将其添加到自动加载器中
  • 你的扩展是一个独立的作曲家包(即你的根composer.json中的一个要求)还是你的站点包的一部分?
  • 该扩展是我的站点包的一部分。它位于 /typo3conf/ext/snowboard_staff

标签: composer-php typo3 typo3-extensions


【解决方案1】:

如果您使用 composer 安装了您的扩展程序,您可以将 autoload 放在扩展程序的 composer.json 文件中,就像“Thomas”已经写好的一样。但是,如果您只是将扩展程序放入 typo3cond/ext 文件夹,您必须在根目录的主 composer.json 文件中添加 autoload 设置。

扩展中的composer.json:

"autoload": {
   "psr-4": {
      "Vendor\\Yourext\\": "Classes/"
   }
},

根目录下的composer.json:

"autoload": {
   "psr-4": {
      "Vendor\\Yourext\\": "web/typo3conf/ext/startpilot/Classes"
   }
 },

【讨论】:

  • 这是正确的。更多信息可以在这里找到:usetypo3.com/typo3-and-composer.html
  • 这是一个很好的解释。我喜欢它!但是对于这种sn-p,“运行代码sn-p”的意义让我无法理解。 “复制 sn-p 以回答”也是如此。也许你可以解释一下,或者只是用它做一个简单的sn-p? (将 sn-p 复制到剪贴板可能会有用)
  • SybillePeters thx 的提示 - 刚刚更新了代码格式
【解决方案2】:

您必须将类的位置添加到扩展的 composer.json 中:

"autoload": {
  "psr-4": {
    "Snowboard\\SnowboardStaff\\": "Classes/",
  }
}

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 2020-10-08
    • 2016-10-24
    • 2015-06-01
    • 2015-05-21
    • 1970-01-01
    • 2013-02-02
    • 2015-09-24
    相关资源
    最近更新 更多