private function encode(EventAdapterInterface $ea, $object, $config) { $om = $ea->getObjectManager(); $meta = $om->getClassMetadata(get_class($object)); $uow = $om->getUnitOfWork(); foreach ($config['encode'] as $field => $options) { $value = $meta->getReflectionProperty($field)->getValue($object); $method = $options['type']; $encoded = $method($options['secret'] . $value); $meta->getReflectionProperty($field)->setValue($object, $encoded); } // recalculate changeset $ea->recomputeSingleObjectChangeSet($uow, $meta, $object); }
protected function updateField($object, $uow, AdapterInterface $ea, $meta, $field, $value, $notifyPropertyChanged = true) { $property = $meta->getReflectionProperty($field); $oldValue = $property->getValue($object); $property->setValue($object, $value); if ($notifyPropertyChanged && $object instanceof NotifyPropertyChanged) { $uow = $ea->getObjectManager()->getUnitOfWork(); $uow->propertyChanged($object, $field, $oldValue, $value); } }
/** * @param AdapterInterface $ea * @throws \RuntimeException */ protected function initUploadableSubscriber(AdapterInterface $ea) { $em = $ea->getObjectManager()->getEventManager(); if (null === $this->uploadableSubscriber) { foreach ($em->getListeners('loadClassMetadata') as $listener) { if ($listener instanceof UploadableSubscriber) { $this->setUploadableSubscriber($listener); break; } } if (!$this->uploadableSubscriber) { throw new RuntimeException("UploadableSubscriber can't be found"); } } foreach ($this->uploadableSubscriberEvents as $event) { if (!$em->hasListeners($event) || !in_array($this, $em->getListeners($event), true)) { $em->addEventListener($event, $this); } } }