Class TSqliteCache
TSqliteCache class
TSqliteCache implements a cache application module based on SQLite database.
THIS CLASS IS DEPRECATED since it relies on the sqlite PHP extension, that is
no longer loaded by default since PHP 5.1. You are discouraged from using it:
use TDbCache
instead.
Since PRADO v3.1.0, a new DB-based cache module called TDbCache
is
provided. If you have PDO extension installed, you may consider using the new
cache module instead as it allows you to use different database to store the
cached data.
The database file is specified by the setDbFile DbFile property. If not set, the database file will be created under the system state path. If the specified database file does not exist, it will be created automatically. Make sure the directory containing the specified DB file and the file itself is writable by the Web server process.
The following basic cache operations are implemented:
TCache::get()
: retrieve the value with a key (if any) from cacheTCache::set()
: store the value with a key into cacheTCache::add()
: store the value only if cache does not have this keyTCache::delete()
: delete the value with the specified key from cacheTSqliteCache::flush()
: delete all values from cache
Each value is associated with an expiration time. The TCache::get()
operation
ensures that any expired value will not be returned. The expiration time by the
number of seconds. A expiration time 0 represents never expire.
By definition, cache does not ensure the existence of a value even if it never expires. Cache is not meant to be an persistent storage.
Do not use the same database file for multiple applications using TSqliteCache. Also note, cache is shared by all user sessions of an application.
Some usage examples of TSqliteCache are as follows,
$cache=new TSqliteCache; // TSqliteCache may also be loaded as a Prado application module $cache->setDbFile($dbFilePath); $cache->init(null); $cache->add('object',$object); $object2=$cache->get('object');
If loaded, TSqliteCache will register itself with TApplication
as the
cache module. It can be accessed via TApplication::getCache()
.
TSqliteCache may be configured in application configuration file as follows
<module id="cache" class="System.Caching.TSqliteCache" DbFile="Application.Data.site" />
where getDbFile DbFile is a property specifying the location of the SQLite DB file (in the namespace format).
- TComponent
-
TApplicationComponent
-
TModule implements IModule
-
TCache implements ICache, ArrayAccess
-
TSqliteCache
Copyright: Copyright © 2005-2014 PradoSoft
License: http://www.pradosoft.com/license/
Author: Qiang Xue <qiang.xue@gmail.com>
Since: 3.0
Located at Caching/TSqliteCache.php
public
|
|
public
|
#
init(
Initializes this module. This method is required by the IModule interface. It checks if the DbFile property is set, and creates a SQLiteDatabase instance for it. The database or the cache table does not exist, they will be created. Expired values are also deleted. |
public
string
|
|
public
|
|
protected
string
|
#
getValue( string $key )
Retrieves a value from cache with a specified key. This is the implementation of the method declared in the parent class. |
protected
boolean
|
#
setValue( string $key, string $value, integer $expire )
Stores a value identified by a key in cache. This is the implementation of the method declared in the parent class. |
protected
boolean
|
#
addValue( string $key, string $value, integer $expire )
Stores a value identified by a key into cache if the cache does not contain this key. This is the implementation of the method declared in the parent class. |
protected
boolean
|
#
deleteValue( string $key )
Deletes a value with the specified key from cache This is the implementation of the method declared in the parent class. |
public
|
#
flush( )
Deletes all values from cache. Be careful of performing this operation if the cache is shared by multiple applications. |
add(),
delete(),
generateUniqueKey(),
get(),
getKeyPrefix(),
getPrimaryCache(),
offsetExists(),
offsetGet(),
offsetSet(),
offsetUnset(),
set(),
setKeyPrefix(),
setPrimaryCache()
|
getID(),
setID()
|
getApplication(),
getRequest(),
getResponse(),
getService(),
getSession(),
getUser(),
publishAsset(),
publishFilePath()
|
string |
CACHE_TABLE |
'cache' |
#
name of the table storing cache data |
string |
DB_FILE_EXT |
'.db' |
#
extension of the db file name |
GLOBAL_RAISE_EVENT_LISTENER
|