*/ class Mage_Core_Model_Resource_Cache extends Mage_Core_Model_Resource_Db_Abstract { /** * Define main table * */ protected function _construct() { $this->_init('core/cache_option', 'code'); } /** * Get all cache options * * @return array | false */ public function getAllOptions() { $adapter = $this->_getReadAdapter(); if ($adapter) { /** * Check if table exist (it protect upgrades. cache settings checked before upgrades) */ if ($adapter->isTableExists($this->getMainTable())) { $select = $adapter->select() ->from($this->getMainTable(), array('code', 'value')); return $adapter->fetchPairs($select); } } return false; } /** * Save all options to option table * * @param array $options * @return Mage_Core_Model_Resource_Cache * @throws Exception */ public function saveAllOptions($options) { $adapter = $this->_getWriteAdapter(); if (!$adapter) { return $this; } $data = array(); foreach ($options as $code => $value) { $data[] = array($code, $value); } $adapter->beginTransaction(); try { $this->_getWriteAdapter()->delete($this->getMainTable()); if ($data) { $this->_getWriteAdapter()->insertArray($this->getMainTable(), array('code', 'value'), $data); } } catch (Exception $e) { $adapter->rollback(); throw $e; } $adapter->commit(); return $this; } }