-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,96 +4,13 @@ | |
|
||
namespace Doctrine\ORM\Event; | ||
|
||
use Doctrine\ORM\EntityManagerInterface; | ||
use Doctrine\Persistence\Event\LifecycleEventArgs; | ||
use InvalidArgumentException; | ||
|
||
use function get_debug_type; | ||
use function sprintf; | ||
use Doctrine\Persistence\Event\PreUpdateEventArgs as BasePreUpdateEventArgs; | ||
|
||
/** | ||
* Class that holds event arguments for a preUpdate event. | ||
* | ||
* @extends LifecycleEventArgs<EntityManagerInterface> | ||
* @extends PreUpdateEventArgs<EntityManagerInterface> | ||
*/ | ||
class PreUpdateEventArgs extends LifecycleEventArgs | ||
class PreUpdateEventArgs extends BasePreUpdateEventArgs | ||
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with PHPStan (default, phpstan.neon)
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with Psalm (default)InvalidDocblock
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with Psalm (default)MissingTemplateParam
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with PHPStan (3.7, phpstan-dbal3.neon)
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with Psalm (3.7)InvalidDocblock
Check failure on line 14 in lib/Doctrine/ORM/Event/PreUpdateEventArgs.php GitHub Actions / Static Analysis with Psalm (3.7)MissingTemplateParam
|
||
{ | ||
/** @var array<string, array{mixed, mixed}> */ | ||
private array $entityChangeSet; | ||
|
||
/** | ||
* @param mixed[][] $changeSet | ||
* @psalm-param array<string, array{mixed, mixed}> $changeSet | ||
*/ | ||
public function __construct(object $entity, EntityManagerInterface $em, array &$changeSet) | ||
{ | ||
parent::__construct($entity, $em); | ||
|
||
$this->entityChangeSet = &$changeSet; | ||
} | ||
|
||
/** | ||
* Retrieves entity changeset. | ||
* | ||
* @return mixed[][] | ||
* @psalm-return array<string, array{mixed, mixed}> | ||
*/ | ||
public function getEntityChangeSet(): array | ||
{ | ||
return $this->entityChangeSet; | ||
} | ||
|
||
/** | ||
* Checks if field has a changeset. | ||
*/ | ||
public function hasChangedField(string $field): bool | ||
{ | ||
return isset($this->entityChangeSet[$field]); | ||
} | ||
|
||
/** | ||
* Gets the old value of the changeset of the changed field. | ||
*/ | ||
public function getOldValue(string $field): mixed | ||
{ | ||
$this->assertValidField($field); | ||
|
||
return $this->entityChangeSet[$field][0]; | ||
} | ||
|
||
/** | ||
* Gets the new value of the changeset of the changed field. | ||
*/ | ||
public function getNewValue(string $field): mixed | ||
{ | ||
$this->assertValidField($field); | ||
|
||
return $this->entityChangeSet[$field][1]; | ||
} | ||
|
||
/** | ||
* Sets the new value of this field. | ||
*/ | ||
public function setNewValue(string $field, mixed $value): void | ||
{ | ||
$this->assertValidField($field); | ||
|
||
$this->entityChangeSet[$field][1] = $value; | ||
} | ||
|
||
/** | ||
* Asserts the field exists in changeset. | ||
* | ||
* @throws InvalidArgumentException | ||
*/ | ||
private function assertValidField(string $field): void | ||
{ | ||
if (! isset($this->entityChangeSet[$field])) { | ||
throw new InvalidArgumentException(sprintf( | ||
'Field "%s" is not a valid field of the entity "%s" in PreUpdateEventArgs.', | ||
$field, | ||
get_debug_type($this->getObject()), | ||
)); | ||
} | ||
} | ||
} |