Typo3 从资源文件夹访问存储库

Typo3 从资源文件夹访问存储库,typo3,extbase,Typo3,Extbase,我有一个Typo3扩展名(Typo3 CMS 6.2),我想从位于/Resource/PHP/中的PHP文件访问存储库globalSettingsRepository 虽然我清除了缓存,但依赖项注入不起作用: /** * globalSettingsRepository * * @var \TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository * @inject */ public $glob

我有一个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访问存储库


非常感谢。

您的扩展中有一些问题需要解决

首先,您不应该使用
TYPO3
作为扩展的供应商。这仅适用于核心和官方扩展

第二,你必须遵守惯例

\TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository
这意味着您必须在以下路径中有一个名为
\TYPO3\Institutsvideoverwaltung\Domain\Repository\GlobalSettingsRepository
的类:
/typo3conf/ext/Institutsvideoverwaltung/Classes/Domain/Repository/GlobalSettingsRepository.php

似乎您没有这样做,而是将它放在
Resources/PHP


如果要使用
Resources/PHP
中的类,需要使用
require\u once()
手动包含它,或者需要确保正确自动加载了类。自动加载的要求从版本6更改为版本7,因此您需要说明正在使用的版本。尽管如此,打破惯例,然后付出大量努力是没有意义的,因为有一个简单的方法。

我没有完全理解你,但我认为你正在寻找这个。@Vishal感谢你的回答,但实际上我正在尝试使用\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx\Extbase\u Object\u ObjectManager')的选项;这不起作用:(GlobalSettingsRepository位于您刚才发布的路径。一个文件位于文件夹存储库(GlobalSettingsRepo.php)中,另一个文件(也是一个php文件)位于Resources/Private/PHP/。我想我的问题是在这两个位置之间建立一个连接。这个版本是用Extbase 6.2发布的Typo3 CMS 6.2。