1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-25 12:33:29 +01:00
php-phpbb/phpBB/phpbb/cache/driver/driver_interface.php
2013-10-30 13:05:28 +01:00

139 lines
3.0 KiB
PHP

<?php
/**
*
* @package acm
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace phpbb\cache\driver;
/**
* An interface that all cache drivers must implement
*
* @package acm
*/
interface driver_interface
{
/**
* Load global cache
*/
public function load();
/**
* Unload cache object
*/
public function unload();
/**
* Save modified objects
*/
public function save();
/**
* Tidy cache
*/
public function tidy();
/**
* Get saved cache object
*/
public function get($var_name);
/**
* Put data into cache
*/
public function put($var_name, $var, $ttl = 0);
/**
* Purge cache data
*/
public function purge();
/**
* Destroy cache data
*/
public function destroy($var_name, $table = '');
/**
* Check if a given cache entry exists
*/
public function _exists($var_name);
/**
* Load result of an SQL query from cache.
*
* @param string $query SQL query
*
* @return int|bool Query ID (integer) if cache contains a rowset
* for the specified query.
* False otherwise.
*/
public function sql_load($query);
/**
* Save result of an SQL query in cache.
*
* In persistent cache stores, this function stores the query
* result to persistent storage. In other words, there is no need
* to call save() afterwards.
*
* @param \phpbb\db\driver\driver $db Database connection
* @param string $query SQL query, should be used for generating storage key
* @param mixed $query_result The result from \dbal::sql_query, to be passed to
* \dbal::sql_fetchrow to get all rows and store them
* in cache.
* @param int $ttl Time to live, after this timeout the query should
* expire from the cache.
* @return int|mixed If storing in cache succeeded, an integer $query_id
* representing the query should be returned. Otherwise
* the original $query_result should be returned.
*/
public function sql_save(\phpbb\db\driver\driver $db, $query, $query_result, $ttl);
/**
* Check if result for a given SQL query exists in cache.
*
* @param int $query_id
* @return bool
*/
public function sql_exists($query_id);
/**
* Fetch row from cache (database)
*
* @param int $query_id
* @return array|bool The query result if found in the cache, otherwise
* false.
*/
public function sql_fetchrow($query_id);
/**
* Fetch a field from the current row of a cached database result (database)
*
* @param int $query_id
* @param $field The name of the column.
* @return string|bool The field of the query result if found in the cache,
* otherwise false.
*/
public function sql_fetchfield($query_id, $field);
/**
* Seek a specific row in an a cached database result (database)
*
* @param int $rownum Row to seek to.
* @param int $query_id
* @return bool
*/
public function sql_rowseek($rownum, $query_id);
/**
* Free memory used for a cached database result (database)
*
* @param int $query_id
* @return bool
*/
public function sql_freeresult($query_id);
}