我正在尝试使用 Extbase 将插件添加到我的扩展中。我按照 TYPO3 文档上的教程进行操作,还在 YouTube 上观看了视频,但我无法让它工作,而且我总是得到一个空白页面(我在 TypoScript 和 PHP 中激活了调试)。
我创建了以下内容
在汽车/ext_localconf.php
ExtensionUtility::configurePlugin(
'Cars',
'Show',
[
CarController::class => 'list, show'
]
);
在汽车/配置/TCA/Overrides/tt_content.php
ExtensionUtility::configurePlugin(
'Cars',
'Show',
[
CarController::class => 'list, show'
]
);
在汽车/配置/TypoScript
plugin.tx_cars {
view {
templateRootPaths {
0 = EXT:cars/Resources/Private/Templates/
}
partialRootPaths {
0 = EXT:cars/Resources/Private/Partials/
}
layoutRootPaths {
0 = EXT:cars/Resources/Private/Layouts/
}
}
settings {
singleViewPageUid = 4
}
}
还有控制器、模型和存储库。您可以在这个 GitHub 存储库中看到该扩展,它的结构非常简单。 github 存储库
我相信问题来自 TypoScript,因为我无法理解如何在 TypoScript 中添加插件。我对吗?我还漏掉了什么吗?
ext_localconf.php
和Configuration/TCA/Overrides/tt_content.php
中缺少命名空间。
而且不需要在两个文件中都配置,通常只在ext_localconf.php
中完成。
ext_localconf.php
:
ExtensionUtility::configurePlugin(
'Cars',
'Show',
[
\VENDOR\EXTENSIONNAME\CarController::class => 'list, show'
]
);
VENDOR 和 EXTENSIONNAME 必须替换为您的个人值。
另一个要求是在根模板记录中包含静态 TypoScript。这也可以间接位于包含扩展文件的站点包中。
在后一种情况下,您必须注意将汽车扩展的文件
constants.typoscript
包含在站点包的 constants.typoscript
中,并将汽车扩展的文件 setup.typoscript
包含在站点包的 setup.typoscript
中。
我不确定这是否能解决您的问题,但这将是第一步。
另一种方法是使用 extension_builder 创建扩展,但是你应该使用 TYPO3 v11。实际上我不能保证它在那里工作完美,但在 v12 中它仍然是不可取的,特别是对于初学者。