/** * @static * @return Element_Sanitycheck */ public static function getNext() { $sanityCheck = new Element_Sanitycheck(); $sanityCheck->getResource()->getNext(); if ($sanityCheck->getId() and $sanityCheck->getType()) { return $sanityCheck; } else { return null; } }
/** * Clear all relations in the database * @param Element_Interface $element */ public function clearAllForElement($element) { try { $id = $element->getId(); $type = Element_Service::getElementType($element); //schedule for sanity check $data = $this->db->fetchAll("SELECT * FROM dependencies WHERE targetid = ? AND targettype = ?", array($id, $type)); if (is_array($data)) { foreach ($data as $row) { $sanityCheck = new Element_Sanitycheck(); $sanityCheck->setId($row['sourceid']); $sanityCheck->setType($row['sourcetype']); $sanityCheck->save(); } } $this->db->delete("dependencies", $this->db->quoteInto("sourceid = ?", $id) . " AND " . $this->db->quoteInto("sourcetype = ?", $type)); $this->db->delete("dependencies", $this->db->quoteInto("targetid = ?", $id) . " AND " . $this->db->quoteInto("targettype = ?", $type)); } catch (Exception $e) { Logger::error($e); } }
public static function runSanityCheck($runDirtyCheck = true) { $sanityCheck = Element_Sanitycheck::getNext(); while ($sanityCheck) { $element = self::getElementById($sanityCheck->getType(), $sanityCheck->getId()); if ($element) { try { self::performSanityCheck($element, $runDirtyCheck); } catch (Exception $e) { Logger::error("Element_Service: sanity check for element with id [ " . $element->getId() . " ] and type [ " . self::getType($element) . " ] failed"); } $sanityCheck->delete(); } else { $sanityCheck->delete(); } $sanityCheck = Element_Sanitycheck::getNext(); } }