Jelajahi Sumber

FD3-252 : se setea el container en prePersist

Luciano Andrade 7 tahun lalu
induk
melakukan
a29a9e9c8e
2 mengubah file dengan 24 tambahan dan 7 penghapusan
  1. 21 4
      EventListener/WorkflowEventListener.php
  2. 3 3
      Resources/config/services.yml

+ 21 - 4
EventListener/WorkflowEventListener.php

@@ -3,12 +3,13 @@
 namespace WorkflowBundle\EventListener;
 
 use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
+use Doctrine\Common\EventSubscriber;
 
 
 /**
  * Setea el container al workflow
  */
-class WorkflowEventListener
+class WorkflowEventListener implements EventSubscriber
 {
 
     private $container;
@@ -18,13 +19,29 @@ class WorkflowEventListener
         $this->container = $container;
     }
 
-    public function postLoad(LifecycleEventArgs $args)
+    public function getSubscribedEvents()
     {
-        $object = $args->getObject();
+        return array(
+		'prePersist',
+		'postLoad',
+        );
+    }
+
+    function setContainer(LifecycleEventArgs $args){
+	$object = $args->getObject();
         if ($object instanceof \WorkflowBundle\Entity\Workflow) {
             $object->setContainer($this->container);
         }
-        return;
+    }
+
+    public function postLoad(LifecycleEventArgs $args)
+    {
+	    $this->setContainer($args);
+    }
+
+    public function prePersist(LifecycleEventArgs $args)
+    {
+	    $this->setContainer($args);
     }
 
 }

+ 3 - 3
Resources/config/services.yml

@@ -45,8 +45,8 @@ services:
         tags:
             - { name: doctrine.event_listener, event: prePersist }
 
-    global.kernel.entity:
+    workflow.event.listener:
         class: WorkflowBundle\EventListener\WorkflowEventListener
         tags:
-            - { name: doctrine.event_listener, event: postLoad }
-        arguments: ['@service_container']
+            - { name: doctrine.event_subscriber }
+        arguments: ['@service_container']