我目前正在开发 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,这样我就可以在我的打字脚本设置中使用插件
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;
扩展实用程序::configurePlugin( 我的网站控制器::EXTENSION_NAME, 我的网站控制器::PLUGIN_NAME, [ MyWebsiteController::CONTROLLER_NAME => PageRepository::PAGES ]
正在使用typo3 Composer版本12.4.8
有人可以帮助我理解为什么我的类没有被 Composer 的自动加载器识别以及我如何解决这个问题
MyWebsite\Classes\Controller\MyWebsiteController
- 我认为这条路是你的问题。 TYPO3 使用一些命名约定,我很确定您需要从该路径中删除类部分。
use MyWebsite\Controller\MyWebsiteController;
尝试一下!