ADLDS に対してユーザーを認証する認証サービスを実装しようとしています。ここまでは順調ですね。サービスの実装と有効化は問題ではありませんが、サービス内のリポジトリからいくつかの機能が必要です。
$usergroups = $this->adlds->getTypoGroups($this->login['uname']);
/** @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage */
$groupStorage = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage');
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$plFrontendUserRepository = $objectManager->get('PLE\\PlBase\\Domain\\Repository\\PlFrontendUserRepository');
$languageGroupRepository = $objectManager->get('PLE\\PlBase\\Domain\\Repository\\LanguageGroupRepository');
foreach ($usergroups as $groupname) {
$groupStorage->attach($languageGroupRepository->findByGroupTitle($groupname));
}
objectmanager を使用してリポジトリをインスタンス化しようとすると、「1203 行目の ..\Classes\Persistence\Generic\Storage\Typo3DbBackend.php の非オブジェクトでメンバ関数 versionOL() を呼び出す」というメッセージが表示されます
そして、私が使用しようとすると:
/**
* languageGroupRepository
*
* @var \PLE\PlBase\Domain\Repository\LanguageGroupRepository
* @inject
*/
protected $languageGroupRepository;
/**
* plFrontendUserRepository
*
* @var \PLE\PlBase\Domain\Repository\PlFrontendUserRepository
* @inject
*/
protected $plFrontendUserRepository;
そして、「$this->repository」で2つのリポジトリを使用すると、「オブジェクト以外のメンバー関数findByGroupTitle()への呼び出し」(リポジトリの機能)が得られるため、注入は失敗します。インジェクション関数を実装しようとしましたが、まったく機能しません。
何か案は?