如何使用extbase在TYPO3 CMS 6.0上引导插件?

Chr*_*her 8 typo3 typoscript extbase

我试图通过TYPO3 CMS 6.0上的typoscript使用extbase插件.我使用了以下代码,我在网上重复了一遍:

10 = USER
10 { 
    userFunc = tx_extbase_core_bootstrap->run
    pluginName = Sermons
    extensionName = VmfdsSermons
    switchableControllerActions {
        Sermon {
            1 = byLatestSeries
            2 = list
            3 = show
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这只会给我以下错误:

#1289386765: Could not analyse class:Tx_VmfdsSermons_Controller_SermonController maybe not loaded or no autoloader?
Run Code Online (Sandbox Code Playgroud)

在我看来好像tx_extbase_core_bootstrap->run还没有使用命名空间,因此试图加载一个Tx_VmfdsSermons_Controller_SermonController应该调用它时调用的类\TYPO3\VmfdsSermons\Controller\SermonController.有没有解决的办法?

wit*_*rin 13

你在寻找这家酒店vendorName.所以在你的情况下它应该是:

10 = USER
10 { 
    userFunc      = TYPO3\CMS\Extbase\Core\Bootstrap->run

    pluginName    = Sermons
    extensionName = VmfdsSermons
    vendorName    = TYPO3
    [...]
Run Code Online (Sandbox Code Playgroud)

我还使用了供应商命名空间ext_localconf.php:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    '<Vendor>.' . $_EXTKEY, 
    [...]
Run Code Online (Sandbox Code Playgroud)

我通过使用调试器找到了答案.我开始\TYPO3\CMS\Extbase\Mvc\Dispatcher::resolveController()跳进去了TYPO3\CMS\Extbase\Mvc\Request::getControllerObjectName().有一个成员controllerVendorName,所以我在Extbase中搜索了setter \TYPO3\CMS\Extbase\Mvc\Request::setControllerVendorName(),恰好是for setControllerVendorName,并且得到了一个匹配\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build(),在哪里是一个名为的成员vendorName,只是在上面的方法中\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::loadDefaultValues(),就是答案!


小智 7

tx_extbase_core_bootstrap不应再使用调用,因为它在ver中已弃用.6.0并将在7.0中删除

你可以尝试不同的.开发人员现在应该使用命名空间处理所有内容

你可以用这个:

# bootstrap aufrufen -> run from extbase

userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
Run Code Online (Sandbox Code Playgroud)