다양한 유형의 페이지를 렌더링하기위한 간단한 서비스를 작성하려고합니다. Strategy pattern로 설계 될 것이다Symfony2의 전략 패턴
$somePageType = new PageType(...);
$this->get('page.service')->render($somePagetype);
... : 기본 개념은 같은 것을 가지고있다. 페이지 유형은 render
메소드와 인터페이스를 구현하고 page.service
은이를 호출합니다. 문제는 페이지 유형 클래스에서 Doctrine을 사용하고 싶습니다. 내 옵션은 무엇입니까? 나는이 클래스들 각각에 대한 서비스를 만드는 것을 피하고 싶다. 그게 가능한가? 컨테이너가 서비스없이 인식 할 수 있습니까? 미래에 어떤 페이지 유형은 교리 이외의 다른 것을 필요로 할 수도 있습니다. 따라서이 점을 명심해야합니다.
주위를 지나칠 수 없습니다. 그의 목표가 교리를 요구한다면, 그는 교리 목표를위한 생성자에 매개 변수를 추가하여 그것을 요구해야한다. – meze
@ meze 물론, 모든 전략이 서로 다른 의존성을 갖는다면 어떨까요? 이것이 유일한 방법 일 것입니다. 그러나 저는 개인적으로 모든 전략을 실제로 서비스로 정의 할 것입니다. – gilden
및 전략 테스트 방법은 무엇입니까? 심포니없이 다른 프로젝트에서 재사용 할 수 있습니까? – meze