2016-12-05 40 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很多,这是诀窍! –