Browse Source

split metadataExtension by objectManager classes, this fix issue when using both ORM and ODM at the same time

jaugustin 14 năm trước cách đây
mục cha
commit
2293432b93

+ 5 - 4
lib/Gedmo/Mapping/MappedEventSubscriber.php

@@ -39,7 +39,7 @@ abstract class MappedEventSubscriber implements EventSubscriber
      *
      *
      * @var Gedmo\Mapping\ExtensionMetadataFactory
      * @var Gedmo\Mapping\ExtensionMetadataFactory
      */
      */
-    private $extensionMetadataFactory;
+    private $extensionMetadataFactory = array();
 
 
     /**
     /**
      * List of event adapters used for this listener
      * List of event adapters used for this listener
@@ -105,13 +105,14 @@ abstract class MappedEventSubscriber implements EventSubscriber
      */
      */
     public function getExtensionMetadataFactory(ObjectManager $objectManager)
     public function getExtensionMetadataFactory(ObjectManager $objectManager)
     {
     {
-        if (null === $this->extensionMetadataFactory) {
-            $this->extensionMetadataFactory = new ExtensionMetadataFactory(
+        $class = get_class($objectManager);
+        if (!isset($this->extensionMetadataFactory[$class])) {
+            $this->extensionMetadataFactory[$class] = new ExtensionMetadataFactory(
                 $objectManager,
                 $objectManager,
                 $this->getNamespace()
                 $this->getNamespace()
             );
             );
         }
         }
-        return $this->extensionMetadataFactory;
+        return $this->extensionMetadataFactory[$class];
     }
     }
 
 
     /**
     /**