1
0
mirror of synced 2025-02-02 13:31:45 +03:00

DDC-3683 - #1380 - reverting BC break, annotating correct types, cs fixes

This commit is contained in:
Marco Pivetta 2015-07-15 20:35:21 +01:00
parent fff56c7f3f
commit ed1c4de2b6
2 changed files with 14 additions and 42 deletions

View File

@ -20,33 +20,20 @@
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.
*
* @author Jonathan H. Wage <jonwage@gmail.com>
* @since 2.0
*
* Note: method annotations are used instead of method overrides (due to BC policy)
*
* @method __construct(\Doctrine\ORM\Mapping\ClassMetadata $classMetadata, \Doctrine\ORM\EntityManager $objectManager)
* @method \Doctrine\ORM\EntityManager getClassMetadata()
*/
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.
*
@ -54,20 +41,6 @@ class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs
*/
public function getEntityManager()
{
/*
We can safely assume our ObjectManager is also an EventManager due to
our restrictions in the constructor.
*/
return $this->getObjectManager();
}
/**
* Retrieves the associated ClassMetadata.
*
* @return \Doctrine\ORM\Mapping\ClassMetadata
*/
public function getClassMetadata()
{
return parent::getClassMetadata();
}
}

View File

@ -3,7 +3,6 @@
namespace Doctrine\Tests\EventListener;
use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Mapping\ClassMetadata;
@ -38,16 +37,19 @@ class CacheMetadataListener
/**
* @param ClassMetadata $metadata
*
* @return bool
*/
private function isVisited(ClassMetaData $metadata) {
private function isVisited(ClassMetaData $metadata)
{
return isset($this->enabledItems[$metadata->getName()]);
}
/**
* @param ClassMetadata $metadata
*/
private function recordVisit(ClassMetaData $metadata) {
private function recordVisit(ClassMetaData $metadata)
{
$this->enabledItems[$metadata->getName()] = true;
}
@ -55,8 +57,8 @@ class CacheMetadataListener
* @param ClassMetadata $metadata
* @param EntityManager $em
*/
protected function enableCaching(ClassMetadata $metadata, EntityManager $em) {
protected function enableCaching(ClassMetadata $metadata, EntityManager $em)
{
if ($this->isVisited($metadata)) {
return; // Already handled in the past
}
@ -73,12 +75,9 @@ class CacheMetadataListener
$this->recordVisit($metadata);
/*
* Only enable association-caching when the target has already been
* given caching settings
*/
// only enable association-caching when the target has already been
// given caching settings
foreach ($metadata->associationMappings as $mapping) {
$targetMeta = $em->getClassMetadata($mapping['targetEntity']);
$this->enableCaching($targetMeta, $em);