2016-10-26 9 views
0

API 기반 로그인을 추가하기 위해 auth 유형의 서비스를 사용하고 있습니다. @inject을 통해 Extbase의 FrontendUserRepository를 가진 사용자를 추가하려고 시도했습니다. 그러나 이것은 작동하지 않습니다.TYPO3 Extbase - 서비스 클래스에서 종속성 삽입이 작동합니까?

나는 무엇인가 잘못하고 있습니까, 아니면 일찌기 의존성 주사를 사용합니까? @Inject 주석이 ObjectManager 인스턴스 \ TYPO3 \ CMS \ Extbase \ 개체에 의해로드 된 객체에 대해서만 작동과

$objectManager = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager'); 
$this->frontendUserRepository = $objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserRepository'); 

답변

4

DI :

P.S은 : 나는 내가 저장소를 다음과 같은 방법을 사용할 수 있습니다 알고 있습니다. 인증 서비스는 GeneralUtility::makeInstanceService()을 사용하여 인스턴스화되며 GeneralUtility::makeInstance() (TYPO3\CMS\Core\Authentication\AbstractUserAuthentication::checkAuthentication() 참조)을 사용하므로 @Inject 주석은 아무런 효과가 없습니다. 자신이 이미 언급 한 해결 방법을 사용해야합니다.

+0

맞습니다. 그러나 [주입 방법] (https://gist.github.com/NamelessCoder/3b2e5931a6c1af19f9c3f8b46e74f837)에 대한이 기사를 살펴 보시기 바랍니다. '@ inject' -way는 그 길이가 짧더라도 최상일 수 없습니다. TYPO3에 대한'@ inject'의 요구 사항에 대해서만 많은 시간을 보냈습니다. – unherz

0

[typo3 7.6] 인증 서비스에로드되지 않은 모든 extbase 항목이 있다고 생각합니다. 인증 서비스에서 extbase repos를 사용하는 동안 많은 오류가 발생합니다 (컨트롤러 컨텍스트에서 뛰어남). 누락 된 부품의 초기화에 대해 하나의 링크를 찾았습니다. Extbase innerhalb eines TYPO3 Authentication Services verwenden