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;
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.
@ -29,6 +31,22 @@ use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs as BaseLoadClas
*/
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.
*
@ -36,6 +54,18 @@ class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs
*/
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();
}
}