2016-12-05 36 views
0

我有一個基於TYPO3 7.6安裝的作曲家,並且想用命令控制器創建一個Extbase擴展。命令控制器的類不能自動加載

控制器註冊ext_localconf.php,但沒有找到條命令控制器,因爲類在typo3/sysext/extbase/Classes/Mvc/Cli/CommandManager.phppublic function getAvailableCommands()

命名空間沒有發現也被設置:namespace Foo\FooT3monitoringNotification\Command;
類是這裏Classes/Command/NotificationCommandController.php

我已經清除了所有的TYPO3緩存,並做了composer dump-autoload。任何想法,我錯過了什麼或者我能做些什麼來發現,爲什麼我的課不會自動加載?

+0

看一看在在composer目錄中生成的autoload_ * - 你應該在那裏找到你的名字空間。另外:它是一個基於作曲家的安裝(我猜是這樣),還是一個「經典」? – Susi

+0

是的,它是基於cmposer的。並且'vendor/composer/autoload_'中的任何文件都沒有關於我的課程。 什麼可能會阻止我的課程被添加到那裏?我的擴展中需要一個'composer.json'嗎? –

+0

你在控制器中有公共actionCommand嗎?像'''public doMyTaskCommand()'''? –

回答

5

由於您新創建的擴展程序未通過作曲程序安裝,因此您需要定義在哪裏尋找類。因此,你需要自動加載的部分添加到您的根composer.json(即」是指未在擴展,但在你的TYPO3分發根文件夾):

"autoload": { 
    "psr-4": { 
     "Foo\\FooT3monitoringNotification\\": "web/typo3conf/ext/foo_t3monitoring_notification/Classes" 
    } 
} 

的更多信息:https://usetypo3.com/typo3-and-composer.html#c67

+0

Thx很多,這是訣竅! –