1

引数を指定してサービス sme_task.listener.status_change をセットアップすると、イベントが受信されません。

services:
    sme_task.service.task_template:
        class: Sme\TaskBundle\Service\TaskTemplateService
        arguments: [@doctrine.orm.entity_manager]

    sme_task.listener.status_change:
        class: Sme\TaskBundle\Listener\StatusChangeListener
        arguments: ["@sme_task.service.task_template"]
        tags:
            - { name: doctrine.event_subscriber, connection: default }

引数を削除すると、イベントに到達します。

    sme_task.listener.status_change:
        class: Sme\TaskBundle\Listener\StatusChangeListener
        tags:
            - { name: doctrine.event_subscriber, connection: default }

Sme\TaskBundle\Listener\StatusChangeListener.php

class StatusChangeListener implements EventSubscriber {
    private $taskTemplateService;
    public function __construct($taskTemplate=null) {

        $this->taskTemplateService=$taskTemplate;
    }

[...]

    public function onFlush(OnFlushEventArgs  $eventArgs) {
        throw new \Exception("Event reached");
        [... some calls to TaskTemplateService ...]
    }

    function getSubscribedEvents()
    {
        return array("onFlush");
    }
}

なぜこれが起こるのか、どうすれば修正できるのか、誰にも分かりますか?

4

1 に答える 1