/** * (non-PHPdoc) * @see SessionHandlerInterface::gc() */ public function gc($maxlifetime) { $delete = new Delete($this->config['table']); $timestamp = time() - $maxlifetime; if ($delete->where('time', '<', $timestamp)->exec($this->config['connection']) === false) { Log::error("Session GC: Error deleting session record from database that are older then maxlifetime={$maxlifetime} (older then timestamp {$timestamp})"); return false; } return true; }
/** * Delete one or more records from the table defined in this model. If you * pass array, then array must contain field names and values that will be * used in WHERE statement. If you pass primitive value, method will treat * that as passed value for primary key field. * * @param mixed $where * @return integer How many records is deleted * @example User::delete(1); * @example User::delete(array('group_id' => 5, 'parent_id' => 10)); * @example User::delete(array('parent_id' => 10, array('time', '>', '2013-08-01 00:00:00'))) * @return int number of affected rows * @link http://koldy.net/docs/database/models#delete */ public static function delete($where) { $delete = new Delete(static::getTableName()); if ($where instanceof Where) { $delete->where($where); } else { if (is_array($where)) { foreach ($where as $field => $value) { $delete->where($field, $value); } } else { if (!is_array(static::$primaryKey) && (is_numeric($where) || is_string($where))) { $delete->where(static::$primaryKey, $where); } } } return $delete->exec(static::$connection); }
/** * (non-PHPdoc) * @see \Koldy\Cache\Driver\AbstractDriver::deleteOld() */ public function deleteOld($olderThenSeconds = null) { if ($olderThenSeconds === null) { $olderThenSeconds = $this->defaultDuration; } $delete = new Delete($this->config['table']); $delete->setConnection($this->config['connection'])->where('expires_at', '<=', time())->exec(); }