コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function deploy(ActionInterface $action, ActionManagerInterface $actionManager)
 {
     if ($action->getStatusWanted() !== ActionInterface::STATUS_PUBLISHED) {
         return;
     }
     $this->entryCollection->setActionManager($actionManager);
     $results = $this->processSpreads($action);
     $results->loadUnawareEntries();
     $i = 1;
     foreach ($results as $context => $entries) {
         foreach ($entries as $entry) {
             $this->timelineManager->createAndPersist($action, $entry->getSubject(), $context, TimelineInterface::TYPE_TIMELINE);
             if ($i % $this->batchSize == 0) {
                 $this->timelineManager->flush();
             }
             $i++;
         }
     }
     if ($i > 1) {
         $this->timelineManager->flush();
     }
     foreach ($this->notifiers as $notifier) {
         $notifier->notify($action, $results);
     }
     $action->setStatusCurrent(ActionInterface::STATUS_PUBLISHED);
     $action->setStatusWanted(ActionInterface::STATUS_FROZEN);
     $actionManager->updateAction($action);
     $this->entryCollection->clear();
 }
コード例 #2
0
 public function testClear()
 {
     $this->if($collection = new TestedModel())->and($this->mockClass('\\Spy\\Timeline\\Spread\\Entry\\EntryInterface', '\\Mock'))->and($entry = new \Mock\EntryInterface())->and($entry->getMockController()->getIdent = 'ident1')->when($collection->add($entry, 'NOTGLOBAL'))->object($collection->getIterator())->isEqualTo(new \ArrayIterator(array('NOTGLOBAL' => array('ident1' => $entry), 'GLOBAL' => array('ident1' => $entry))))->when($collection->clear())->object($collection->getIterator())->isEqualTo(new \ArrayIterator(array()));
 }