2011-09-05 4 views
1
내가 어떤 구현을 본 적이 있지만, 그들 모두가 때 컨트롤러에서 EM에 액세스 할 수

ZF1 Doctrine2 서비스 레이어

좋은 올바르게 젠드 프레임 워크와 서비스 계층을 구현하는 방법의 예와 Doctrine2을 찾고 있어요

서비스를 인스턴스화하고, 나는 그것이 틀렸다고 생각하지 않습니까?

Exmaple는 : http://cobbweb.me/2010/11/integrate-doctrine-2-zend-framework-application/

또한 나는 this project에 도착하지만, 그것을 구현하는 방법을 정말 확실하지 :

+0

정말 "잘못"아니에요. 주로 EM 대신 사용되는 다른 것을 도입하여 아키텍처를보다 복잡하게 만들거나 (예 : 서비스 위치 지정자, 공장 등) –

+0

@JaniHartikainen 흠, 아마도 zf2에 대해 이야기 할 것입니다. 예제 링크는 좋습니다 출발점, 전에 사용 했어. 내가 할 수있는 말은 github하고 몇 가지 저장소를 다운로드하는 것입니다. Chekout이 녀석들 #dynamicguy # routesemate #szjani #cobbweb 그리고 ... –

답변

1

사용에게 서비스에 대한 공장처럼 행동하는 도우미

감사 :

  • Fron에서 인스턴스를 등록 할 때 Action Helper를 작성하고 EntityManager를 삽입해야합니다 컨트롤러.
  • 이 조치 도우미는 direct() 메소드에서 매개 변수로 팩토리가 작성해야하는 서비스 클래스의 이름을 수신합니다.
    • 이 메서드의 내부에서 요청한 서비스 클래스를 인스턴스화하고 반환해야합니다 (동일한 서비스가 없으면 예외를 throw해야합니다).
  • 서비스 클래스가 생성자에서 EntityManager의 매개 변수로 수신되도록하고 출고시 생성하십시오.

나머지는 이미 분명해야합니다. 귀하의 컨트롤러에서 당신은 단지 같은 것을 사용해야합니다 :

SomeController extends Zend_Controller_Action { 

    //... 
    public function someAction() 
    { 
     $myService = $this->_helper->service('MyService'); 
     $myService->doSomething(); 
    } 
} 
관련 문제