當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Container::state方法代碼示例

本文整理匯總了PHP中Container::state方法的典型用法代碼示例。如果您正苦於以下問題:PHP Container::state方法的具體用法?PHP Container::state怎麽用?PHP Container::state使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Container的用法示例。


在下文中一共展示了Container::state方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: persist

 /**
  * {@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));
     });
 }
開發者ID:innmind,項目名稱:neo4j-onm,代碼行數:19,代碼來源:InsertPersister.php

示例2: persist

 /**
  * {@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));
     });
 }
開發者ID:innmind,項目名稱:neo4j-onm,代碼行數:19,代碼來源:RemovePersister.php

示例3: persist

 /**
  * {@inheritdoc}
  */
 public function persist(ConnectionInterface $connection, Container $container)
 {
     $changesets = new Map(IdentityInterface::class, CollectionInterface::class);
     $entities = $container->state(Container::STATE_MANAGED)->foreach(function (IdentityInterface $identity, $entity) use(&$changesets) {
         $data = $this->extractor->extract($entity);
         $changeset = $this->changeset->compute($identity, $data);
         if ($changeset->count() > 0) {
             $changesets = $changesets->put($identity, $changeset);
         }
     });
     if ($changesets->size() === 0) {
         return;
     }
     $changesets->foreach(function (IdentityInterface $identity, CollectionInterface $changeset) use($entities) {
         $this->dispatcher->dispatch(Events::PRE_UPDATE, new UpdateEvent($identity, $entities->get($identity), $changeset));
     });
     $connection->execute($this->queryFor($changesets, $entities));
     $changesets->foreach(function (IdentityInterface $identity, CollectionInterface $changeset) use($entities) {
         $entity = $entities->get($identity);
         $this->changeset->use($identity, $this->extractor->extract($entity));
         $this->dispatcher->dispatch(Events::POST_UPDATE, new UpdateEvent($identity, $entity, $changeset));
     });
 }
開發者ID:innmind,項目名稱:neo4j-onm,代碼行數:26,代碼來源:UpdatePersister.php


注:本文中的Container::state方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。