Пример #1
0
 /**
  * Expires cache entries associated with triggered events.
  *
  * @return bool								- Whether any events were triggered
  */
 public function event($events)
 {
     if (empty($events)) {
         return;
     }
     if (!is_array($events)) {
         $events = array($events);
     }
     // Get affected cache entries
     $results = $this->assertor->getColumn('cacheevent', 'cacheid', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_SELECT, vB_dB_Query::CONDITIONS_KEY => array(array('field' => 'event', 'value' => $events))));
     foreach ($events as $event) {
         if (isset($this->pageEvents[$event])) {
             foreach ($this->pageEvents[$event] as $cacheid) {
                 $results[] = $cacheid;
                 unset($this->values_read[$cacheid]);
                 $this->no_values[$cacheid] = $cacheid;
                 unset($this->recordsToSave[$cacheid]);
             }
         }
     }
     $this->expire($results);
     $this->assertor->delete('cacheevent', array('event' => $events));
     return true;
 }