Refactored the validator initializer

It can now be reused for all Doctrine projects, not only for the ORM.
This commit is contained in:
Christophe Coevoet 2011-10-16 17:13:11 +02:00
parent c6063ecf6f
commit ea2cf73715
2 changed files with 5 additions and 5 deletions

View File

@ -13,14 +13,13 @@ namespace Symfony\Bridge\Doctrine\Validator;
use Doctrine\Common\Persistence\ManagerRegistry;
use Symfony\Component\Validator\ObjectInitializerInterface;
use Doctrine\ORM\Proxy\Proxy;
/**
* Automatically loads proxy object before validation.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class EntityInitializer implements ObjectInitializerInterface
class DoctrineInitializer implements ObjectInitializerInterface
{
protected $registry;
@ -31,8 +30,9 @@ class EntityInitializer implements ObjectInitializerInterface
public function initialize($object)
{
if ($object instanceof Proxy) {
$this->registry->getManagerForClass(get_class($object))->getUnitOfWork()->initializeObject($object);
$manager = $this->registry->getManagerForClass(get_class($object));
if (null !== $manager) {
$manager->initializeObject($object);
}
}
}

View File

@ -34,7 +34,7 @@
<!-- validator -->
<parameter key="doctrine.orm.validator.unique.class">Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator</parameter>
<parameter key="doctrine.orm.validator_initializer.class">Symfony\Bridge\Doctrine\Validator\EntityInitializer</parameter>
<parameter key="doctrine.orm.validator_initializer.class">Symfony\Bridge\Doctrine\Validator\DoctrineInitializer</parameter>
</parameters>
<services>