I use a noticeably similar extension for Doctrine / Zend, and I ran into the same problem. I noticed that this happened every time:
- @Encrypted (,
names) - (,
bob) - (,
(id, bob, x, y, z))
DoctrineEncryptSubscriber.php( vmelnik-ukraine/DoctrineEncryptBundle):
public function preUpdate(PreUpdateEventArgs $args) {
$reflectionClass = new ReflectionClass($args->getEntity());
$properties = $reflectionClass->getProperties();
foreach ($properties as $refProperty) {
if ($this->annReader->getPropertyAnnotation($refProperty, self::ENCRYPTED_ANN_NAME)) {
$propName = $refProperty->getName();
$args->setNewValue($propName, $this->encryptor->encrypt($args->getNewValue($propName)));
}
}
}
$args->setNewValue(...) assertValidField($field), , @Encrypted entityChangeSet... , . , . , , entityChangeSet .
, , setNewValue(), , :
public function preUpdate(PreUpdateEventArgs $args)
{
$reflectionClass = new ReflectionClass($args->getEntity());
$properties = $reflectionClass->getProperties();
foreach ($properties as $refProperty) {
if ($this->annReader->getPropertyAnnotation($refProperty, self::ENCRYPTED_ANN_NAME)) {
$propName = $refProperty->getName();
if ($args->hasChangedField($propName)) {
$args->setNewValue($propName, $this->encryptor->encrypt($args->getNewValue($propName)));
}
}
}
}