2013-08-06 9 views
1

소나타 알림 번들 백엔드 명령은 명령에 전달 된 반복 횟수가 완료 될 때까지 기다립니다. 백엔드 명령이 사용 가능한 메시지와 동일한 횟수만큼 반복하도록합니다. 모든 메시지를 보내고 종료해야합니다.sonataNotificationBundle의 Sonata NotificationBundle Iterator MessageManagerMessageIterator 클래스를 재정의하는 방법은 무엇입니까?

그래서 Sonata \ NotificationBundle \ Iterator \ MessageManagerMessageIterator 클래스를 재정의하고 싶습니다.

Application \ Sonata \ NotificationBundle \ Iterator \ MessageManagerMessageIterator에 복사했습니다. Application \ Sonata는 설치시 Sonata가 생성 한 하위 번들입니다. 하지만 여전히이 클래스를 사용하지 않고 원래 부모 번들 클래스를 가리키고 있습니다. 반복자 사용된다

아래 방법

연가 \ NotificationBundle \ 백엔드 \ MessageManagerBackend.php 클래스.

/** 
* {@inheritdoc} 
*/ 
public function getIterator() 
{ 
    $types = null !== $this->type ? array($this->type) : array(); 

    return new MessageManagerMessageIterator($this->messageManager, $types, $this->pause, $this->batchSize); 
} 

어떻게 MessageManagerMessageIterator를 재정의합니까?

답변

0

간단한 방법은 bundle inheritance 기능을 사용하는 것입니다. 그것은 매우 깨끗한 해결책은 아니지만 여전히 효과가있을 것입니다.

+0

나는 그것을 알고 있지만 그것은 내 위의 문제를 해결하지 못한다. – vishal