1
0
mirror of synced 2025-02-09 00:39:25 +03:00

Refactor LoadClassMetadataEventArgs to ensure it contains an EntityManager

This commit is contained in:
Darien Hager 2015-05-05 13:52:08 -07:00 committed by Marco Pivetta
parent d29cc3660f
commit 08be905fc3

View File

@ -20,6 +20,8 @@
namespace Doctrine\ORM\Event; namespace Doctrine\ORM\Event;
use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs as BaseLoadClassMetadataEventArgs; use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs as BaseLoadClassMetadataEventArgs;
use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\EntityManager;
/** /**
* Class that holds event arguments for a loadMetadata event. * Class that holds event arguments for a loadMetadata event.
@ -29,6 +31,22 @@ use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs as BaseLoadClas
*/ */
class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs
{ {
/**
* @param ClassMetadata $classMetadata
* @param EntityManager $entityManager
*/
function __construct(ClassMetadata $classMetadata, EntityManager $entityManager)
{
/*
We use our own constructor here to enforce type-hinting requirements,
since both inputs are specialized subclasses compared to what the super-
class is willing to accept.
In particular, we want to have EntityManager rather than ObjectManager.
*/
parent::__construct($classMetadata, $entityManager);
}
/** /**
* Retrieve associated EntityManager. * Retrieve associated EntityManager.
* *
@ -36,6 +54,18 @@ class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs
*/ */
public function getEntityManager() public function getEntityManager()
{ {
return $this->getObjectManager(); $em = $this->getObjectManager();
assert($em instanceof EntityManager);
return $em;
}
/**
* Retrieves the associated ClassMetadata.
*
* @return \Doctrine\ORM\Mapping\ClassMetadata
*/
public function getClassMetadata()
{
return parent::getClassMetadata();
} }
} }