php TYPO3扩展开发:Composer自动加载无法识别自定义类

avwztpqn  于 2024-01-05  发布在  PHP
关注(0)|答案(2)|浏览(284)

我目前正在开发一个TYPO3扩展,遇到了Composer自动加载器无法识别我的自定义类的问题。我的目标是使用Extbase获取数据并将其传递给Fluid模板。
我的扩展合成器看起来像这样

{
  "name": "toumeh/mywebsite",
  "description": "my Website",
  "type": "typo3-cms-extension",
  "license": "GPL-2.0-or-later",
  "authors": [
    {
      "name": "toumeh",
      "email": "[email protected]"
    }
  ],

  "require": {
    "typo3/cms-fluid-styled-content": "^12.4.0",
    "ext-pdo": "*"
  },
  "autoload": {
    "psr-4": {
      "MyWebsite\\Classes\\": "Classes/"
    }
  },
  "extra": {
    "typo3/cms": {
      "extension-key": "mywebsite"
    }
  }
}

字符串
我添加类到ext_localconf. php,所以我可以使用我的typoscript设置内的插件

use MyWebsite\Classes\Controller\MyWebsiteController;
use MyWebsite\Classes\Domain\PageRepository;
use TYPO3\CMS\Extbase\Utility\ExtensionUtility;

ExtensionUtility::configurePlugin(
    MyWebsiteController::EXTENSION_NAME,
    MyWebsiteController::PLUGIN_NAME,
    [
        MyWebsiteController::CONTROLLER_NAME => PageRepository::PAGES
    ]
);


我得到以下错误
类"MyWebsite\Classes\Controller\MyWebsiteController"未找到
在/var/www/t3coredev/packages/mywebsite/ext_localconf.php行11使用MyWebsite\Classes\Domain\PageRepository;使用TYPO3\CMS\Extbase\Utility\ExtensionUtility;
ExtensionUtility::configurePlugin(MyWebsiteController::EXTENSION_NAME,MyWebsiteController::PLUGIN_NAME,[MyWebsiteController::CONTROLLER_NAME => PageRepository::PAGES]
1.我正在运行撰写转储自动加载,但它没有工作

  1. exbase扩展位于我的根 composer "typo3/cms-extbase"中:"^12.4.0"
    1.我很确定这不是权限问题。
    这是我的项目结构enter image description here的snapchat
    我使用的是typo3 composer版本12.4.8
    有人能帮助我理解为什么我的类不被Composer的自动加载器识别,以及如何解决这个问题吗
s71maibg

s71maibg1#

我认为这个路径是你的问题。TYPO 3使用了一些命名约定,我很确定你需要从这个路径中删除类部分。

use MyWebsite\Controller\MyWebsiteController;

字符串
试试吧!

8fq7wneg

8fq7wneg2#

感谢那些试图帮助我的人。在检查了所有内容后,我发现运行的composer dump-autoload不足以发现错误。在我使用composer update后,我在容器内部遇到了权限问题

相关问题