Skip to content

Commit

Permalink
Remove doctrine deprecations
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Aug 10, 2023
1 parent d22dc61 commit a1f7a67
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 112 deletions.
17 changes: 4 additions & 13 deletions src/EventListener/ORM/LifecycleDateListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
namespace Nucleos\Doctrine\EventListener\ORM;

use DateTime;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\MappingException;
use Nucleos\Doctrine\Model\LifecycleDateTimeInterface;

final class LifecycleDateListener extends AbstractListener
Expand All @@ -29,10 +29,7 @@ public function getSubscribedEvents(): array
];
}

/**
* Start lifecycle.
*/
public function prePersist(LifecycleEventArgs $args): void
public function prePersist(PrePersistEventArgs $args): void
{
$object = $args->getObject();

Expand All @@ -42,10 +39,7 @@ public function prePersist(LifecycleEventArgs $args): void
}
}

/**
* Update LifecycleDateTime.
*/
public function preUpdate(LifecycleEventArgs $args): void
public function preUpdate(PreUpdateEventArgs $args): void
{
$object = $args->getObject();

Expand All @@ -54,9 +48,6 @@ public function preUpdate(LifecycleEventArgs $args): void
}
}

/**
* @throws MappingException
*/
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs): void
{
$meta = $eventArgs->getClassMetadata();
Expand Down
41 changes: 25 additions & 16 deletions src/EventListener/ORM/SortableListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@

use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreRemoveEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\MappingException;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\QueryBuilder;
use Doctrine\ORM\UnitOfWork;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Nucleos\Doctrine\Model\PositionAwareInterface;
use Symfony\Component\PropertyAccess\PropertyAccess;
use Symfony\Component\PropertyAccess\PropertyAccessor;
Expand Down Expand Up @@ -54,9 +56,9 @@ public function getSubscribedEvents(): array
];
}

public function prePersist(LifecycleEventArgs $args): void
public function prePersist(PrePersistEventArgs $args): void
{
if (!$args->getEntity() instanceof PositionAwareInterface) {
if (!$args->getObject() instanceof PositionAwareInterface) {
return;
}

Expand All @@ -65,11 +67,11 @@ public function prePersist(LifecycleEventArgs $args): void

public function preUpdate(PreUpdateEventArgs $args): void
{
if (!$args->getEntity() instanceof PositionAwareInterface) {
if (!$args->getObject() instanceof PositionAwareInterface) {
return;
}

$position = $args->getEntity()->getPosition();
$position = $args->getObject()->getPosition();

if ($args->hasChangedField('position')) {
$position = $args->getOldValue('position');
Expand All @@ -78,12 +80,12 @@ public function preUpdate(PreUpdateEventArgs $args): void
$this->uniquePosition($args, $position);
}

public function preRemove(LifecycleEventArgs $args): void
public function preRemove(PreRemoveEventArgs $args): void
{
$entity = $args->getEntity();
$entity = $args->getObject();

if ($entity instanceof PositionAwareInterface) {
$this->movePosition($args->getEntityManager(), $entity, -1);
$this->movePosition($args->getObjectManager(), $entity, -1);
}
}

Expand All @@ -110,17 +112,24 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs): void
}
}

/**
* @param LifecycleEventArgs<EntityManagerInterface> $args
*/
private function uniquePosition(LifecycleEventArgs $args, ?int $oldPosition = null): void
{
$entity = $args->getEntity();
$entity = $args->getObject();

if ($entity instanceof PositionAwareInterface) {
if (null === $entity->getPosition()) {
$position = $this->getNextPosition($args->getEntityManager(), $entity);
$entity->setPosition($position);
} elseif (null !== $oldPosition && $oldPosition !== $entity->getPosition()) {
$this->movePosition($args->getEntityManager(), $entity);
}
if (!$entity instanceof PositionAwareInterface) {
return;
}

$em = $args->getObjectManager();

if (null === $entity->getPosition()) {
$position = $this->getNextPosition($em, $entity);
$entity->setPosition($position);
} elseif (null !== $oldPosition && $oldPosition !== $entity->getPosition()) {
$this->movePosition($em, $entity);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/EventListener/ORM/TablePrefixEventListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $args): void
}

$classMetadata = $args->getClassMetadata();
$entityManager = $args->getEntityManager();
$entityManager = $args->getObjectManager();

$this->addTablePrefix($classMetadata);
$this->addSequencePrefix($classMetadata, $entityManager);
Expand Down
17 changes: 12 additions & 5 deletions src/EventListener/ORM/UniqueActiveListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@
namespace Nucleos\Doctrine\EventListener\ORM;

use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\MappingException;
use Doctrine\ORM\QueryBuilder;
use Doctrine\ORM\UnitOfWork;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Nucleos\Doctrine\Model\UniqueActiveInterface;
use Symfony\Component\PropertyAccess\PropertyAccess;
use Symfony\Component\PropertyAccess\PropertyAccessor;
Expand Down Expand Up @@ -50,12 +53,12 @@ public function getSubscribedEvents(): array
];
}

public function prePersist(LifecycleEventArgs $args): void
public function prePersist(PrePersistEventArgs $args): void
{
$this->uniqueActive($args);
}

public function preUpdate(LifecycleEventArgs $args): void
public function preUpdate(PreUpdateEventArgs $args): void
{
$this->uniqueActive($args);
}
Expand All @@ -81,9 +84,12 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs): void
}
}

/**
* @param LifecycleEventArgs<EntityManagerInterface> $args
*/
private function uniqueActive(LifecycleEventArgs $args): void
{
$entity = $args->getEntity();
$entity = $args->getObject();

if (!$entity instanceof UniqueActiveInterface) {
return;
Expand All @@ -93,7 +99,8 @@ private function uniqueActive(LifecycleEventArgs $args): void
return;
}

$em = $args->getEntityManager();
$em = $args->getObjectManager();

$uow = $em->getUnitOfWork();
$meta = $em->getClassMetadata(\get_class($entity));

Expand Down
41 changes: 10 additions & 31 deletions tests/EventListener/ORM/LifecycleDateListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@

use Closure;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadata;
use Nucleos\Doctrine\EventListener\ORM\LifecycleDateListener;
Expand Down Expand Up @@ -46,10 +47,7 @@ public function testPrePersist(): void
$object->expects(static::once())->method('setCreatedAt');
$object->expects(static::once())->method('setUpdatedAt');

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getObject')
->willReturn($object)
;
$eventArgs = new PrePersistEventArgs($object, $this->createStub(EntityManagerInterface::class));

$listener = new LifecycleDateListener();
$listener->prePersist($eventArgs);
Expand All @@ -60,53 +58,34 @@ public function testPrePersistForInvalidClass(): void
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getObject')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$entityManager->expects(static::never())->method('createQueryBuilder');

$listener = new LifecycleDateListener();
$listener->prePersist($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->prePersist(new PrePersistEventArgs($object, $entityManager));
}

public function testPreUpdate(): void
{
$object = $this->createMock(LifecycleDateTimeInterface::class);
$object->expects(static::once())->method('setUpdatedAt');

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getObject')
->willReturn($object)
;
$changeSet = [];

$listener = new LifecycleDateListener();
$listener->preUpdate($eventArgs);
$listener->preUpdate(new PreUpdateEventArgs($object, $this->createStub(EntityManagerInterface::class), $changeSet));
}

public function testPreUpdateForInvalidClass(): void
{
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);
$entityManager->expects(static::never())->method('createQueryBuilder');

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getObject')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$changeSet = [];

$listener = new LifecycleDateListener();
$listener->preUpdate($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->preUpdate(new PreUpdateEventArgs($object, $entityManager, $changeSet));
}

public function testLoadClassMetadataWithEmptyClass(): void
Expand Down
30 changes: 6 additions & 24 deletions tests/EventListener/ORM/SortableListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
namespace Nucleos\Doctrine\Tests\EventListener\ORM;

use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreRemoveEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadata;
use Nucleos\Doctrine\EventListener\ORM\SortableListener;
Expand Down Expand Up @@ -43,39 +43,21 @@ public function testPrePersistForInvalidClass(): void
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);

$eventArgs = $this->createMock(PreUpdateEventArgs::class);
$eventArgs->method('getEntity')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$entityManager->expects(static::never())->method('createQueryBuilder');

$listener = new SortableListener();
$listener->prePersist($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->prePersist(new PrePersistEventArgs($object, $entityManager));
}

public function testPreRemoveForInvalidClass(): void
{
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getEntity')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$entityManager->expects(static::never())->method('createQueryBuilder');

$listener = new SortableListener();
$listener->preRemove($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->preRemove(new PreRemoveEventArgs($object, $entityManager));
}

public function testLoadClassMetadataWithEmptyClass(): void
Expand Down
28 changes: 6 additions & 22 deletions tests/EventListener/ORM/UniqueActiveListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
namespace Nucleos\Doctrine\Tests\EventListener\ORM;

use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadata;
Expand Down Expand Up @@ -42,39 +42,23 @@ public function testPrePersistForInvalidClass(): void
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);

$eventArgs = $this->createMock(PreUpdateEventArgs::class);
$eventArgs->method('getEntity')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$entityManager->expects(static::never())->method('createQueryBuilder');

$listener = new UniqueActiveListener();
$listener->prePersist($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->prePersist(new PrePersistEventArgs($object, $entityManager));
}

public function testPreUpdateForInvalidClass(): void
{
$object = $this->createMock(stdClass::class);

$entityManager = $this->createMock(EntityManagerInterface::class);
$entityManager->expects(static::never())->method('createQueryBuilder');

$eventArgs = $this->createMock(LifecycleEventArgs::class);
$eventArgs->method('getEntity')
->willReturn($object)
;
$eventArgs->method('getEntityManager')
->willReturn($entityManager)
;
$changeSet = [];

$listener = new UniqueActiveListener();
$listener->preUpdate($eventArgs);

$entityManager->expects(static::never())->method('createQueryBuilder');
$listener->preUpdate(new PreUpdateEventArgs($object, $entityManager, $changeSet));
}

public function testLoadClassMetadataWithEmptyClass(): void
Expand Down

0 comments on commit a1f7a67

Please sign in to comment.