2017-02-10 48 views
1

我已將Typo3 v6.2.15更新到7.6.15,並嘗試將名稱空間添加到自定義擴展。現在即時通訊上的LoginController類得到一個錯誤:「無法分析類:可能沒有加載或沒有自動加載器?」

Could not analyse class: "Tx_Verwaltung_Controller_LoginController" maybe not loaded or no autoloader? Class Tx_Verwaltung_Controller_LoginController does not exist

我做了什麼:

  • 使用這些文件中'DHW.' . $_EXTKEY替換$_EXTKEY:ext_localconf.php,ext_tables.php 例子:

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
        'DHW.' . $_EXTKEY, 
        'login', 
        array(
         'Login' => 'loginbox,logoutbox' 
        ), 
        array(  
         'Login' => 'loginbox,logoutbox' 
        ) 
    ); 
    
  • 在ext_emconfig.php中加入了這個:

    array(
        'classmap' => array('Classes'), 
        'psr-4' => array('DHW\\Verwaltung\\' => 'Classes') 
    ), 
    
  • 加入這composer.json:

    "autoload": { 
        "psr-4": { 
         "DHW\\Verwaltung\\": "Classes" 
        } 
    } 
    
  • 在typo3conf/EXT/VERWALTUNG /類

    添加命名空間/ LoginController.php

    namespace DHW\Verwaltung\Controller; 
    
    class Tx_Verwaltung_Controller_LoginController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { ... } 
    
  • Enabled和Disabled在後端擴展。

  • 清除後端緩存。
  • 刪除typo3temp文件夾
  • 使用安裝工具清除緩存。

回答

0

看完這個解決它: How do I bootstrap a plugin on TYPO3 CMS 6.0 with extbase?

我不得不添加VENDORNAME在我的TypoScript:

loginBoxWidget = USER 
    loginBoxWidget { 
     userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run 
     vendorName = DHW 
     pluginName = login 
     extensionName = Verwaltung 
     controller = Login   
     action = loginbox 

     ... 

後,我得到了一個 「致命錯誤:無法聲明類」 錯誤。在將類Tx_Verwaltung_Controller_LoginController重命名爲LoginController之後,所有工作都完成了。