/** * 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; }