示例#1
0
 public function runCustomLogic()
 {
     $originator = new Originator();
     //Setting state to State1
     $originator->setState('State1');
     //Setting state to State2
     $originator->setState('State2');
     //Saving State2 to Memento
     $this->saveToHistory($originator->getStateAsMemento());
     //Setting state to State3
     $originator->setState('State3');
     // We can request multiple mementos, and choose which one to roll back to.
     // Saving State3 to Memento
     $this->saveToHistory($originator->getStateAsMemento());
     //Setting state to State4
     $originator->setState('State4');
     $originator->restoreFromMemento($this->getFromHistory(1));
     //State after restoring from Memento: State3
     return $originator->getStateAsMemento()->getState();
 }
示例#2
0
 public static function run()
 {
     /* @var $savedStates Memento[] */
     $savedStates = array();
     $originator = new Originator();
     //Setting state to State1
     $originator->setState("State1");
     //Setting state to State2
     $originator->setState("State2");
     //Saving State2 to Memento
     $savedStates[] = $originator->saveToMemento();
     //Setting state to State3
     $originator->setState("State3");
     // We can request multiple mementos, and choose which one to roll back to.
     // Saving State3 to Memento
     $savedStates[] = $originator->saveToMemento();
     //Setting state to State4
     $originator->setState("State4");
     $originator->restoreFromMemento($savedStates[1]);
     //State after restoring from Memento: State3
 }