2013-08-06 31 views
1

Sonata Notification Bundle backend命令等待傳遞給要完成的命令的迭代次數,我希望後端命令只是迭代等於可用消息的次數。它應該發送所有消息並退出。如何覆蓋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