2012-12-27 13 views
8

Próbuję użyć wtyczki extbase przez literoscript na TYPO3 CMS 6.0. Użyłem następujący kod, który znalazłem powtarzany w całej sieci:Jak mogę uruchomić plugin na TYPO3 CMS 6.0 z extbase?

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

Jednak to właśnie daje mi następujący błąd:

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

Wydaje mi się, jakby tx_extbase_core_bootstrap->run nie używa nazw jednak w ten sposób próbuje załadować klasę o nazwie Tx_VmfdsSermons_Controller_SermonController, kiedy powinna była wywołać \TYPO3\VmfdsSermons\Controller\SermonController. Czy istnieje sposób obejścia tego?

Odpowiedz

13

szukasz nieruchomości vendorName. Tak więc w Twoim przypadku powinno być:

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

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

użyłem również nazw dostawcy ciągu ext_localconf.php:

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

Znalazłem odpowiedź za pomocą debuggera. Zacząłem od \TYPO3\CMS\Extbase\Mvc\Dispatcher::resolveController() i wskoczyłem do TYPO3\CMS\Extbase\Mvc\Request::getControllerObjectName(). Istnieje członek controllerVendorName, więc szukałem w Extbase dla settera , właśnie dla setControllerVendorName, i dostałem mecz w \TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build(), gdzie jest członek o nazwie vendorName, i tylko w metodzie powyżej \TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::loadDefaultValues(), jest odpowiedzią!

+0

Dzięki, to się udało. –

6

Dzwonienie pod numer tx_extbase_core_bootstrap nie powinno być już używane, ponieważ jest to deprecated wer. 6.0 i zostanie usunięty w 7.0

Możesz spróbować różnych. Deweloperzy powinni teraz obsługiwać wszystko z nazw ...

Można to wykorzystać:

# bootstrap aufrufen -> run from extbase 

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

Masz rację, oczywiście, ale to nie rozwiązuje mojego problemu. Jednak ustawiono 'vendorName = TYPO3'. –

Powiązane problemy