2014-11-21 2 views
-1

Zend Framework 2 및 Doctrine 2로 응용 프로그램을 작성했습니다. 두 기술 모두에서 2 개월의 경험이 있습니다.추상 클래스에서 ServiceManager를 얻는 방법

나는 Doctrine 저장소 문서 체계를 사용하고 있습니다. 저장소 클래스에서 현재 사용자에게 액세스해야합니다. 저장소에서 serviceManager 인스턴스를 얻는 방법을 알 수 없습니다. 많은 기사를 읽었지만 여전히 의존성 주입을 이해할 수 없으며 ZF2에서 서비스를 관리해야합니다. 누군가 기본 클래스 (예 : 기본 리포지토리)에 서비스를 주입하는 방법을 설명해 주실 수 있습니까?

+0

를? 또한 사용자 요구 사항을 관리하는 별도의 서비스를 만들어야 할 수도 있습니다. 사용자를 저장소 메소드에 삽입 할 수도 있습니다. – SenseException

답변

0

serviceManager을 지연 검색하려면 ServiceLocatorAwareInterface을 구현해야합니다. ZF2 문서에서

인용구 : 또한

, 당신은 종속성을-게으른 검색에 ServiceManager에를 수신 할 수있는 몇 가지 경우가 있습니다; 따라서 ServiceLocatorAwareInterface를 구현하고 ServiceManager API에 대한 자세한 내용을 알고 자 할 수 있습니다.

ZF2 Quick Start - service manager.를 참조하지만, 당신이 당신의 저장소 클래스 내에서 모든 서비스를 사용해서는 안 정직하게. 데이터를 검색하기 위해 간단하고 깨끗하게 유지하십시오.

그리고 당신이 당신의 저장소 클래스를 호출 할 때, 당신은 너무 같은 사용자 통과해야 : 당신이 전체 ServiceManager에 필요한 이유는 무엇

$data = $this->getEntityManager()->getRepository('Common\Entity\User')->myMethod($user); 
관련 문제