我有一个Typo3扩展(Typo3 CMS 6.2),我想从位于/ Resource / PHP /中的PHP文件访问存储库globalSettingsRepository
。
尽管我清除了缓存,依赖注入仍不起作用:
/**
* globalSettingsRepository
*
* @var \TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository
* @inject
*/
public $globalSettingsRepository = NULL;
PHP的命名空间与我的控制器相同。
我还尝试过这个来创建globalSettingsRepository的实例:
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
这不起作用,因为找不到/ TYPO3 / CMS / ....
有没有人有解决方案?有没有办法从/ Resources?
访问存储库非常感谢。
答案 0 :(得分:0)
您的扩展程序中应该修复一些问题。
首先,您不应使用"require": {
"namespace/libname": "@dev"
}
作为扩展程序的供应商。这仅适用于核心和官方扩展。
其次,你必须遵守惯例。
TYPO3
这意味着您必须在以下路径中有一个名为\TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository
的班级:\TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository
。
似乎你没有把它放在/typo3conf/ext/institutsvideoverwaltung/Classes/Domain/Repository/GlobalSettingsRepository.php
中。
如果您想使用Resources/PHP
中的某个类,则需要使用Resources/PHP
手动包含该类,或者需要确保您的类正确自动加载。自动加载的要求已从版本6更改为7,因此您需要说明您正在使用的版本。尽管如此,打破常规然后付出很多努力是有道理的。有一种简单的方法。