Могу ли я определить порядок, в котором слушатели/подписчики событий вызываются в доктрине?

У меня есть два подписчика событий A и B. Оба подписались на событие onFlush.

Я хочу убедиться, что a::onFlush() всегда вызывается перед B::onFlush(). Я не могу найти какой-либо ресурс в этой документации.

Я использую symfony2, поэтому было бы здорово, если бы я мог просто передать значение в определении службы.

Ответ 1

Добавьте приоритет в свой тег сервиса. Чем выше приоритет, тем раньше он будет работать.

services:
    my.listener:
        class: Acme\SearchBundle\EventListener\SearchIndexer
        tags:
            - { name: doctrine.event_listener, event: postPersist, priority: 100 }