1

Sonata Notification Bundles 后端命令等待传递给命令的迭代次数完成,我希望后端命令只迭代等于可用消息的次数。它应该发送所有消息并退出。

所以我想覆盖 Sonata\NotificationBundle\Iterator\MessageManagerMessageIterator 类。

我将它复制到 Application\Sonata\NotificationBundle\Iterator\MessageManagerMessageIterator , Application\Sonata 是 Sonata 在安装时生成的子包。但它仍然指向原始的父捆绑类,而不是使用这个类。

迭代器用于,

Sonata\NotificationBundle\Backend\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 ?

4

1 回答 1

0

The simple way is to use bundle inheritance feature. It is not very clean solution, but still it will work.

于 2013-08-06T14:53:14.433 回答