2012-12-27 61 views
8

我試圖通過TYPO3 CMS 6.0上的typoscript使用extbase插件。我用下面的代碼,我找到了重複所有網站上:如何使用extbase引導TYPO3 CMS 6.0上的插件?

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不使用名稱空間在我看來,然而,當它應該調用\TYPO3\VmfdsSermons\Controller\SermonController時試圖加載一個名爲Tx_VmfdsSermons_Controller_SermonController的類。有沒有解決的辦法?

回答

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中搜索了的設置者,正好爲setControllerVendorName,並且在\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build()中得到了一個匹配項,其中有一個成員名爲vendorName,而在上面的方法\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::loadDefaultValues()中,就是答案!

+0

謝謝,這是做到了。 –

6

調用tx_extbase_core_bootstrap應該不再使用,因爲它是deprecated在ver。 6.0並將在7.0中刪除

您可以嘗試不同的。現在,開發人員應處理一切與命名空間...

您可以使用此:

# bootstrap aufrufen -> run from extbase 

userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run 
+0

你說得對,當然,但這並不能解決我的問題。然而,設置'vendorName = TYPO3'確實。 –