Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function persist(ConnectionInterface $connection, Container $container)
 {
     $entities = $container->state(Container::STATE_NEW);
     if ($entities->size() === 0) {
         return;
     }
     $entities->foreach(function (IdentityInterface $identity, $entity) {
         $this->dispatcher->dispatch(Events::PRE_PERSIST, new PersistEvent($identity, $entity));
     });
     $connection->execute($this->queryFor($entities));
     $entities->foreach(function (IdentityInterface $identity, $entity) use($container) {
         $container->push($identity, $entity, Container::STATE_MANAGED);
         $this->changeset->use($identity, $this->extractor->extract($entity));
         $this->dispatcher->dispatch(Events::POST_PERSIST, new PersistEvent($identity, $entity));
     });
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function persist(ConnectionInterface $connection, Container $container)
 {
     $entities = $container->state(Container::STATE_TO_BE_REMOVED)->foreach(function (IdentityInterface $identity, $object) {
         $this->dispatcher->dispatch(Events::PRE_REMOVE, new RemoveEvent($identity, $object));
     });
     if ($entities->size() === 0) {
         return;
     }
     $connection->execute($this->queryFor($entities));
     $entities->foreach(function (IdentityInterface $identity, $object) use($container) {
         $container->push($identity, $object, Container::STATE_REMOVED);
         $this->changeset->use($identity, new Collection([]));
         //in case the identity is reused later on
         $this->dispatcher->dispatch(Events::POST_REMOVE, new RemoveEvent($identity, $object));
     });
 }
Пример #3
0
 /**
  * Call the push method of the Alert Container object, which will get the
  * messages in array format (raw), and persist them using the Alert Handler
  * implementation.
  *
  * @param $request
  * @param $response
  */
 public function terminate($request, $response)
 {
     $this->alert->push();
 }