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);
     }
 }
Beispiel #3
0
 /**
  * @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);
         }
     }
 }