2017-04-11 115 views
2

我只是寫我的第一個TYPO3擴展,但它不工作:( 我得到了我的TYPO3前端此錯誤消息:作曲家自己的TYPO3擴展:無法分析類可能沒有加載或沒有自動加載器?

無法分析類: 「滑雪板\ SnowboardStaff \控制器\ SnowboardTeacherController」也許 沒有加載或沒有自動加載磁帶機?類 滑雪\ SnowboardStaff \控制器\ SnowboardTeacherController不 不存在

我與作曲家安裝TYPO3,所以可能是這個問題有一些與此有關?

我已經嘗試過很多人,所以請幫我:)

+0

我對TYPO3的瞭解不多,但也許你需要手動將它添加到'composer.json'中的自動加載器。 –

+0

你的擴展是它自己的作曲包(即你的根作曲家.json')還是它是你的網站包的一部分? – undko

+0

該擴展程序是我的網站包的一部分。它位於/ typo3conf/ext/snowboard_staff –

回答

1

你必須添加類的位置到您的擴展composer.json:

"autoload": { 
    "psr-4": { 
    "Snowboard\\SnowboardStaff\\": "Classes/", 
    } 
} 
4

如果與作曲家安裝分機您可以將autoload放入擴展程序的composer.json文件中,如「Thomas」已寫入。但是,如果您只是將自己的擴展程序放入typo3cond/ext文件夾中,則您的必須在autoload設置中加入composer.json文件的根目錄中。

composer.json在擴展:

"autoload": { 
 
    "psr-4": { 
 
     "Vendor\\Yourext\\": "Classes/" 
 
    } 
 
    },

composer.json根:

"autoload": { 
 
    "psr-4": { 
 
     "Vendor\\Yourext\\": "web/typo3conf/ext/startpilot/Classes" 
 
    } 
 
    },

+0

這是正確的。更多信息可以在這裏找到:https://usetypo3.com/typo3-and-composer.html – Daniel

-2

當你添加新的類到您的前張力Typo3不會更新自動加載緩存,因此您必須手動刪除它。只需刪除autoload_classmap.phptypo3temp/autoload/ 目錄內的所有文件即可。

或者,您可以嘗試卸載您的擴展並重新安裝。不幸的是,清除緩存,即使在安裝工具中,也不會擺脫這個問題(至少在6.x-7.x中)。

+0

如果在TYPO3> = 7LTS中使用作曲家(因爲它在這個問題中),所有的類加載都由作曲家完成。對於在composer.json中爲PSR-4自動加載註冊的所有擴展,可以添加類並自動加載。但是,如果擴展的類使用類映射加載,則會在'composer dump-autoload'命令後加載新類。 – Daniel