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

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

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

  1. {
  2. "name": "toumeh/mywebsite",
  3. "description": "my Website",
  4. "type": "typo3-cms-extension",
  5. "license": "GPL-2.0-or-later",
  6. "authors": [
  7. {
  8. "name": "toumeh",
  9. "email": "[email protected]"
  10. }
  11. ],
  12. "require": {
  13. "typo3/cms-fluid-styled-content": "^12.4.0",
  14. "ext-pdo": "*"
  15. },
  16. "autoload": {
  17. "psr-4": {
  18. "MyWebsite\\Classes\\": "Classes/"
  19. }
  20. },
  21. "extra": {
  22. "typo3/cms": {
  23. "extension-key": "mywebsite"
  24. }
  25. }
  26. }

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

  1. use MyWebsite\Classes\Controller\MyWebsiteController;
  2. use MyWebsite\Classes\Domain\PageRepository;
  3. use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
  4. ExtensionUtility::configurePlugin(
  5. MyWebsiteController::EXTENSION_NAME,
  6. MyWebsiteController::PLUGIN_NAME,
  7. [
  8. MyWebsiteController::CONTROLLER_NAME => PageRepository::PAGES
  9. ]
  10. );


我得到以下错误
类"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使用了一些命名约定,我很确定你需要从这个路径中删除类部分。

  1. use MyWebsite\Controller\MyWebsiteController;

字符串
试试吧!

8fq7wneg

8fq7wneg2#

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

相关问题