Из ext_localconf.php eID, называемый контроллером, makeInstance не находит никакого репозитория

Из-за использования ajax у меня настроен eID, см. Ниже: я хотел бы использовать существующий репозиторий моего расширения. Так что я загружаю контроллер через ext_localconf.php, который работает, я в TestController:

$TYPO3_CONF_VARS['FE']['eID_include']['ajaxDispatcher'] = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('exacallmanagement').'Classes/Controller/TestController.php';

В TestController я запускаю:

\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('VENDOR\Exacallmanagement\Classes\Domain\Repository\CallhistoryRepository');

Пространство имен должно быть правильным, и я всегда получаю: Неустранимая ошибка: Класс '\VENDOR\Exacallmanagement\Classes\Domain\Repository\CallhistoryRepository' не найден в /Users/jacques/Sites/_typo3_engines/6.1.6/typo3/sysext/core/Classes/Utility/GeneralUtility.php в строке 4114

Любой намек?

1 ответ

Вы не должны использовать makeInstance для создания экземпляра хранилища. Сначала вы должны получить экземпляр ObjectManager, а затем использовать его для получения репозитория:

    $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\CMS\Extbase\Object\ObjectManager');
    $sampleRepository= $objectManager->get('\My\Extension\Domain\Repository\SampleRepository');
Другие вопросы по тегам