2012-12-27 6 views
8

Sto provando ad usare un plugin extbase tramite typoscript su TYPO3 CMS 6.0. Ho usato il seguente codice, che ho trovato ripetuto in tutto il web:Come posso eseguire il bootstrap di un plugin su TYPO3 CMS 6.0 con extbase?

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

Tuttavia, questo mi dà il seguente errore:

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

Mi sembra come se tx_extbase_core_bootstrap->run non utilizza gli spazi dei nomi ancora, quindi cercando di caricare una classe chiamata Tx_VmfdsSermons_Controller_SermonController quando avrebbe dovuto chiamare \TYPO3\VmfdsSermons\Controller\SermonController. C'è un modo per aggirare questo?

risposta

13

si sta cercando per la proprietà vendorName. Quindi nel tuo caso dovrebbe essere:

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

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

Ho anche utilizzato lo spazio dei nomi vendor all'interno ext_localconf.php:

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

ho trovato la risposta utilizzando il debugger. Ho iniziato da \TYPO3\CMS\Extbase\Mvc\Dispatcher::resolveController() e sono passato a TYPO3\CMS\Extbase\Mvc\Request::getControllerObjectName(). C'è un membro controllerVendorName, quindi ho cercato in Extbase per il setter di , precisamente solo per setControllerVendorName, e ho ottenuto una corrispondenza in \TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::build(), dove è un membro chiamato vendorName, e solo nel metodo sopra \TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::loadDefaultValues(), è la risposta!

+0

Grazie, l'ha fatto. –

6

La chiamata tx_extbase_core_bootstrap non deve più essere utilizzata poiché è deprecated in ver. 6.0 e sarà rimosso in 7.0

Puoi provare diverso. Gli sviluppatori dovrebbero ora gestire tutto con spazi dei nomi ...

È possibile utilizzare questo:

# bootstrap aufrufen -> run from extbase 

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

Hai ragione, certo, ma questo non risolve il mio problema. Tuttavia, l'impostazione 'vendorName = TYPO3' ha funzionato. –

Problemi correlati