Из 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');