Skip to content

Commit

Permalink
Fix deprecations for Doctrine ORM 3
Browse files Browse the repository at this point in the history
  • Loading branch information
tlallement authored and ternel committed Jan 8, 2024
1 parent d384f15 commit 87c4df6
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 37 deletions.
14 changes: 7 additions & 7 deletions src/EventSubscriber/BlameableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\ORM\UnitOfWork;
use Doctrine\Persistence\Event\LifecycleEventArgs as BaseLifecycleEventArgs;
use Knp\DoctrineBehaviors\Contract\Entity\BlameableInterface;
use Knp\DoctrineBehaviors\Contract\Provider\UserProviderInterface;

Expand Down Expand Up @@ -63,9 +63,9 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
/**
* Stores the current user into createdBy and updatedBy properties
*/
public function prePersist(LifecycleEventArgs $lifecycleEventArgs): void
public function prePersist(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof BlameableInterface) {
return;
}
Expand Down Expand Up @@ -94,9 +94,9 @@ public function prePersist(LifecycleEventArgs $lifecycleEventArgs): void
/**
* Stores the current user into updatedBy property
*/
public function preUpdate(LifecycleEventArgs $lifecycleEventArgs): void
public function preUpdate(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof BlameableInterface) {
return;
}
Expand All @@ -116,9 +116,9 @@ public function preUpdate(LifecycleEventArgs $lifecycleEventArgs): void
/**
* Stores the current user into deletedBy property
*/
public function preRemove(LifecycleEventArgs $lifecycleEventArgs): void
public function preRemove(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof BlameableInterface) {
return;
}
Expand Down
25 changes: 13 additions & 12 deletions src/EventSubscriber/LoggableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
namespace Knp\DoctrineBehaviors\EventSubscriber;

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Events;
use Doctrine\Persistence\Event\LifecycleEventArgs as BaseLifecycleEventArgs;
use Knp\DoctrineBehaviors\Contract\Entity\LoggableInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
Expand All @@ -17,13 +18,14 @@
final class LoggableEventSubscriber
{
public function __construct(
private EntityManagerInterface $entityManager,
private LoggerInterface $logger
) {
}

public function postPersist(LifecycleEventArgs $lifecycleEventArgs): void
public function postPersist(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof LoggableInterface) {
return;
}
Expand All @@ -34,19 +36,19 @@ public function postPersist(LifecycleEventArgs $lifecycleEventArgs): void
$this->logChangeSet($lifecycleEventArgs);
}

public function postUpdate(LifecycleEventArgs $lifecycleEventArgs): void
public function postUpdate(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof LoggableInterface) {
return;
}

$this->logChangeSet($lifecycleEventArgs);
}

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

if ($entity instanceof LoggableInterface) {
$this->logger->log(LogLevel::INFO, $entity->getRemoveLogMessage());
Expand All @@ -56,14 +58,13 @@ public function preRemove(LifecycleEventArgs $lifecycleEventArgs): void
/**
* Logs entity changeset
*/
private function logChangeSet(LifecycleEventArgs $lifecycleEventArgs): void
private function logChangeSet(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entityManager = $lifecycleEventArgs->getEntityManager();
$unitOfWork = $entityManager->getUnitOfWork();
$entity = $lifecycleEventArgs->getEntity();
$unitOfWork = $this->entityManager->getUnitOfWork();
$entity = $lifecycleEventArgs->getObject();

$entityClass = $entity::class;
$classMetadata = $entityManager->getClassMetadata($entityClass);
$classMetadata = $this->entityManager->getClassMetadata($entityClass);

/** @var LoggableInterface $entity */
$unitOfWork->computeChangeSet($classMetadata, $entity);
Expand Down
10 changes: 5 additions & 5 deletions src/EventSubscriber/SluggableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\Persistence\Event\LifecycleEventArgs as BaseLifecycleEventArgs;
use Knp\DoctrineBehaviors\Contract\Entity\SluggableInterface;
use Knp\DoctrineBehaviors\Repository\DefaultSluggableRepository;

Expand Down Expand Up @@ -43,12 +43,12 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
]);
}

public function prePersist(LifecycleEventArgs $lifecycleEventArgs): void
public function prePersist(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$this->processLifecycleEventArgs($lifecycleEventArgs);
}

public function preUpdate(LifecycleEventArgs $lifecycleEventArgs): void
public function preUpdate(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$this->processLifecycleEventArgs($lifecycleEventArgs);
}
Expand All @@ -62,9 +62,9 @@ private function shouldSkip(ClassMetadataInfo $classMetadataInfo): bool
return $classMetadataInfo->hasField(self::SLUG);
}

private function processLifecycleEventArgs(LifecycleEventArgs $lifecycleEventArgs): void
private function processLifecycleEventArgs(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof SluggableInterface) {
return;
}
Expand Down
12 changes: 8 additions & 4 deletions src/EventSubscriber/SoftDeletableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Knp\DoctrineBehaviors\EventSubscriber;

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
use Doctrine\ORM\Events;
Expand All @@ -14,15 +15,19 @@
#[AsDoctrineListener(event: Events::onFlush)]
final class SoftDeletableEventSubscriber
{
public function __construct(
private EntityManagerInterface $entityManager,
) {
}

/**
* @var string
*/
private const DELETED_AT = 'deletedAt';

public function onFlush(OnFlushEventArgs $onFlushEventArgs): void
{
$entityManager = $onFlushEventArgs->getEntityManager();
$unitOfWork = $entityManager->getUnitOfWork();
$unitOfWork = $this->entityManager->getUnitOfWork();

foreach ($unitOfWork->getScheduledEntityDeletions() as $entity) {
if (! $entity instanceof SoftDeletableInterface) {
Expand All @@ -32,7 +37,7 @@ public function onFlush(OnFlushEventArgs $onFlushEventArgs): void
$oldValue = $entity->getDeletedAt();

$entity->delete();
$entityManager->persist($entity);
$this->entityManager->persist($entity);

$unitOfWork->propertyChanged($entity, self::DELETED_AT, $oldValue, $entity->getDeletedAt());
$unitOfWork->scheduleExtraUpdate($entity, [
Expand Down Expand Up @@ -63,5 +68,4 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
'nullable' => true,
]);
}

}
1 change: 0 additions & 1 deletion src/EventSubscriber/TimestampableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,4 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
}
}
}

}
10 changes: 5 additions & 5 deletions src/EventSubscriber/TranslatableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
namespace Knp\DoctrineBehaviors\EventSubscriber;

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\Persistence\Event\LifecycleEventArgs as BaseLifecycleEventArgs;
use Doctrine\Persistence\ObjectManager;
use Knp\DoctrineBehaviors\Contract\Entity\TranslatableInterface;
use Knp\DoctrineBehaviors\Contract\Entity\TranslationInterface;
Expand Down Expand Up @@ -62,12 +62,12 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
}
}

public function postLoad(LifecycleEventArgs $lifecycleEventArgs): void
public function postLoad(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$this->setLocales($lifecycleEventArgs);
}

public function prePersist(LifecycleEventArgs $lifecycleEventArgs): void
public function prePersist(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$this->setLocales($lifecycleEventArgs);
}
Expand Down Expand Up @@ -156,9 +156,9 @@ private function mapTranslation(ClassMetadataInfo $classMetadataInfo, ObjectMana
}
}

private function setLocales(LifecycleEventArgs $lifecycleEventArgs): void
private function setLocales(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof TranslatableInterface) {
return;
}
Expand Down
6 changes: 3 additions & 3 deletions src/EventSubscriber/UuidableEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
namespace Knp\DoctrineBehaviors\EventSubscriber;

use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\Persistence\Event\LifecycleEventArgs as BaseLifecycleEventArgs;
use Knp\DoctrineBehaviors\Contract\Entity\UuidableInterface;

#[AsDoctrineListener(event: Events::loadClassMetadata)]
Expand Down Expand Up @@ -37,9 +37,9 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $loadClassMetadataE
]);
}

public function prePersist(LifecycleEventArgs $lifecycleEventArgs): void
public function prePersist(BaseLifecycleEventArgs $lifecycleEventArgs): void
{
$entity = $lifecycleEventArgs->getEntity();
$entity = $lifecycleEventArgs->getObject();
if (! $entity instanceof UuidableInterface) {
return;
}
Expand Down

0 comments on commit 87c4df6

Please sign in to comment.