8

我正在尝试通过 TYPO3 CMS 6.0 上的打字稿使用 extbase 插件。我使用了以下代码,我发现在整个网络上都重复了该代码:

10 = USER
10 { 
    userFunc = tx_extbase_core_bootstrap->run
    pluginName = Sermons
    extensionName = VmfdsSermons
    switchableControllerActions {
        Sermon {
            1 = byLatestSeries
            2 = list
            3 = show
    }
}

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

#1289386765: Could not analyse class:Tx_VmfdsSermons_Controller_SermonController maybe not loaded or no autoloader?

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

4

2 回答 2

13

您正在寻找物业vendorName。所以在你的情况下应该是:

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

    pluginName    = Sermons
    extensionName = VmfdsSermons
    vendorName    = TYPO3
    [...]

我还在以下位置使用了供应商命名空间ext_localconf.php

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    '<Vendor>.' . $_EXTKEY, 
    [...]

我通过使用调试器找到了答案。我开始\TYPO3\CMS\Extbase\Mvc\Dispatcher::resolveController()并跳入TYPO3\CMS\Extbase\Mvc\Request::getControllerObjectName()。有一个 member controllerVendorName,所以我在 Extbase 中搜索了 的 setter \TYPO3\CMS\Extbase\Mvc\Request::setControllerVendorName(),正好是 for setControllerVendorName,并在 中找到了一个匹配\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build(),其中一个 member 被调用vendorName,就在上面的方法中\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::loadDefaultValues(),就是答案!

于 2013-01-08T14:12:30.227 回答
7

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

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

你可以使用这个:

# bootstrap aufrufen -> run from extbase

userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
于 2012-12-30T18:46:13.657 回答