2017-04-11 117 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

相关问题