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()。というメンバcontrollerVendorNameがあるので、Extbase で のセッターを\TYPO3\CMS\Extbase\Mvc\Request::setControllerVendorName()正確に検索しsetControllerVendorName、 で一致し\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build()、 は と呼ばれるメンバであり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 に答える