浏览代码

[DoctrineBundle] renamed RegistryInterface::getEntityManagerForObject() to getEntityManagerForClass()

Fabien Potencier 14 年之前
父节点
当前提交
d3a69e3531

+ 3 - 3
src/Symfony/Bridge/Doctrine/RegistryInterface.php

@@ -125,11 +125,11 @@ interface RegistryInterface
     function getRepository($entityName, $entityManagerName = null);
 
     /**
-     * Gets the entity manager associated with a given object.
+     * Gets the entity manager associated with a given class.
      *
-     * @param object $object A Doctrine Entity
+     * @param string $class A Doctrine Entity class name
      *
      * @return EntityManager|null
      */
-    function getEntityManagerForObject($object);
+    function getEntityManagerForClass($class);
 }

+ 1 - 1
src/Symfony/Bridge/Doctrine/Validator/EntityInitializer.php

@@ -32,7 +32,7 @@ class EntityInitializer implements ObjectInitializerInterface
     public function initialize($object)
     {
         if ($object instanceof Proxy) {
-            $this->registry->getEntityManagerForObject($object)->getUnitOfWork()->initializeObject($object);
+            $this->registry->getEntityManagerForClass(get_class($object))->getUnitOfWork()->initializeObject($object);
         }
     }
 }

+ 5 - 8
src/Symfony/Bundle/DoctrineBundle/Registry.php

@@ -16,7 +16,6 @@ use Symfony\Bridge\Doctrine\RegistryInterface;
 use Doctrine\DBAL\Connection;
 use Doctrine\ORM\Configuration;
 use Doctrine\ORM\ORMException;
-use Doctrine\ORM\Proxy\Proxy;
 
 /**
  * References all Doctrine connections and entity managers in a given Container.
@@ -219,19 +218,17 @@ class Registry implements RegistryInterface
     }
 
     /**
-     * Gets the entity manager associated with a given object.
+     * Gets the entity manager associated with a given class.
      *
-     * @param object $object A Doctrine Entity
+     * @param string $class A Doctrine Entity class name
      *
      * @return EntityManager|null
      */
-    public function getEntityManagerForObject($object)
+    public function getEntityManagerForClass($class)
     {
-        if ($object instanceof Proxy) {
-            $proxyClass = new \ReflectionClass($object);
+        $proxyClass = new \ReflectionClass($class);
+        if ($proxyClass->implementsInterface('Doctrine\ORM\Proxy\Proxy')) {
             $class = $proxyClass->getParentClass()->getName();
-        } else {
-            $class = get_class($object);
         }
 
         foreach ($this->entityManagers as $id) {