/** * Adds a new cache to the storage. * * @param MAdmin_Cache_Item_Interface $item Cache item that should be saved to the storage * @param boolean $fetch True if the new ID should be returned in the item */ public function saveItem(MShop_Common_Item_Interface $item, $fetch = true) { $iface = 'MAdmin_Cache_Item_Interface'; if (!$item instanceof $iface) { throw new MAdmin_Cache_Exception(sprintf('Object is not of required type "%1$s"', $iface)); } if (!$item->isModified()) { return; } $id = $item->getId(); $cache = $this->getCache(); $cache->delete($id); $cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire()); }
/** * Adds a new cache to the storage. * * @param MAdmin_Cache_Item_Interface $item Cache item that should be saved to the storage * @param boolean $fetch True if the new ID should be returned in the item */ public function saveItem(MShop_Common_Item_Interface $item, $fetch = true) { $iface = 'MAdmin_Cache_Item_Interface'; if (!$item instanceof $iface) { throw new MAdmin_Cache_Exception(sprintf('Object is not of required type "%1$s"', $iface)); } if (!$item->isModified()) { return; } /** madmin/cache/manager/default/set * Inserts the cache entry into the database * * The ID, value and expiration timestamp are inserted as new record * into the cache database. Any existing record must be deleted before * the new one can be inserted. * * The SQL statement must be a string suitable for being used as * prepared statement. It must include question marks for binding * the values from the cache item to the statement before they are * sent to the database server. The number of question marks must * be the same as the number of columns listed in the INSERT * statement. The order of the columns must correspond to the * order in the set() method, so the correct values are bound to the * columns. * * The SQL statement should conform to the ANSI standard to be * compatible with most relational database systems. This also * includes using double quotes for table and column names. * * @param string SQL statement for inserting a new cache entry * @since 2014.03 * @category Developer * @see madmin/cache/manager/default/delete * @see madmin/cache/manager/default/deletebytag * @see madmin/cache/manager/default/get * @see madmin/cache/manager/default/getbytag * @see madmin/cache/manager/default/settag * @see madmin/cache/manager/default/search * @see madmin/cache/manager/default/count */ /** madmin/cache/manager/default/settag * Inserts a new tag to an existing cache entry * * The ID of the cache entry and the tag name are inserted as a new * record into the cache database. Any existing tag record that * conflicts with the new one must be deleted before it can be inserted. * * The SQL statement must be a string suitable for being used as * prepared statement. It must include question marks for binding * the cache ID and tag name from the cache item to the statement * before they are sent to the database server. The number of question * marks must be the same as the number of columns listed in the INSERT * statement. The order of the columns must correspond to the order in * the saveItems() method, so the correct values are bound to the * columns. * * The SQL statement should conform to the ANSI standard to be * compatible with most relational database systems. This also * includes using double quotes for table and column names. * * @param string SQL statement for inserting a new tag to an existing cache entry * @since 2014.03 * @category Developer * @see madmin/cache/manager/default/delete * @see madmin/cache/manager/default/deletebytag * @see madmin/cache/manager/default/get * @see madmin/cache/manager/default/getbytag * @see madmin/cache/manager/default/set * @see madmin/cache/manager/default/search * @see madmin/cache/manager/default/count */ $id = $item->getId(); $cache = $this->getCache(); $cache->delete($id); $cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire()); }