Пример #1
0
 /**
  * On decrement items pre
  *
  * @param  Event $event
  * @return mixed
  */
 public function onDecrementItemsPre(Event $event)
 {
     $event->stopPropagation(true);
     $cache = $event->getTarget();
     $params = $event->getParams();
     $keyValuePairs = $cache->getItems(array_keys($params['keyValuePairs']), $params['options']);
     foreach ($params['keyValuePairs'] as $key => &$value) {
         if (isset($keyValuePairs[$key])) {
             $keyValuePairs[$key] -= $value;
         } else {
             $keyValuePairs[$key] = -$value;
         }
     }
     return $cache->setItems($keyValuePairs, $params['options']);
 }
Пример #2
0
 /**
  * On decrement items pre
  *
  * @param  Event $event
  * @return mixed
  */
 public function onDecrementItemsPre(Event $event)
 {
     $storage = $event->getTarget();
     $params = $event->getParams();
     $keyValuePairs = $storage->getItems(array_keys($params['keyValuePairs']));
     foreach ($params['keyValuePairs'] as $key => &$value) {
         if (isset($keyValuePairs[$key])) {
             $keyValuePairs[$key] -= $value;
         } else {
             $keyValuePairs[$key] = -$value;
         }
     }
     $failedKeys = $storage->setItems($keyValuePairs);
     foreach ($failedKeys as $failedKey) {
         unset($keyValuePairs[$failedKey]);
     }
     $event->stopPropagation(true);
     return $keyValuePairs;
 }