1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/phpbb_ynh.git synced 2024-09-03 19:56:36 +02:00
phpbb_ynh/sources/phpBB/phpbb/cache/driver/driver_interface.php
2015-03-07 13:50:13 +00:00

167 lines
3.8 KiB
PHP

<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\cache\driver;
/**
* An interface that all cache drivers must implement
*/
interface driver_interface
{
/**
* Load global cache
*
* @return mixed False if an error was encountered, otherwise the data type of the cached data
*/
public function load();
/**
* Unload cache object
*
* @return null
*/
public function unload();
/**
* Save modified objects
*
* @return null
*/
public function save();
/**
* Tidy cache
*
* @return null
*/
public function tidy();
/**
* Get saved cache object
*
* @param string $var_name Cache key
* @return mixed False if an error was encountered, otherwise the saved cached object
*/
public function get($var_name);
/**
* Put data into cache
*
* @param string $var_name Cache key
* @param mixed $var Cached data to store
* @param int $ttl Time-to-live of cached data
* @return null
*/
public function put($var_name, $var, $ttl = 0);
/**
* Purge cache data
*
* @return null
*/
public function purge();
/**
* Destroy cache data
*
* @param string $var_name Cache key
* @param string $table Table name
* @return null
*/
public function destroy($var_name, $table = '');
/**
* Check if a given cache entry exists
*
* @param string $var_name Cache key
*
* @return bool True if cache file exists and has not expired.
* False otherwise.
*/
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_interface $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_interface $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 string $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);
}