- Home
- About
- Testimonials
- Demos
- Download
- Documentation
- Blogs
- Forum
- Support

Packages: default System System.Caching System.Collections System.Data System.Data.ActiveRecord System.Data.ActiveRecord.Relations System.Data.ActiveRecord.Scaffold System.Data.ActiveReecord.Scaffold.InputBuilder System.Data.Commom.Sqlite System.Data.Common System.Data.Common.Mssql System.Data.Common.Mysql System.Data.Common.Oracle System.Data.Common.Pgsql System.Data.Common.Sqlite System.Data.DataGateway System.Data.SqlMap System.Data.SqlMap.Configuration System.Data.SqlMap.Statements System.Exceptions System.I18N System.IO System.Security System.Util System.Web System.Web.Services System.Web.UI System.Web.UI.ActiveControls System.Web.UI.WebControls System.Web.UI.WebControls.assets System.Xml Classes: TAPCCache TApplicationStateCacheDependency TCache TCacheDependency TCacheDependencyList TChainedCacheDependency TDbCache TDirectoryCacheDependency TFileCacheDependency TGlobalStateCacheDependency TMemCache TSqliteCache TXCache |
Keyword
# Class TSqliteCache
    TComponent
       |
       --TApplicationComponent
          |
          --TModule
             |
             --TCache
                |
                --TSqliteCache
TSqliteCache class TSqliteCache implements a cache application module based on SQLite database. To use this module, the sqlite PHP extension must be loaded. Note, Sqlite extension is no longer loaded by default since PHP 5.1. Sine 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 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: get : retrieve the value with a key (if any) from cache set : store the value with a key into cache add : store the value only if cache does not have this key delete : delete the value with the specified key from cache flush : delete all values from cache Each value is associated with an expiration time. The 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 DbFile is a property specifying the location of the SQLite DB file (in the namespace format). Since: 3.0 Author: Qiang Xue <qiang.xue@gmail.com>
Method Summary
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.
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.
void | flush () Deletes all values from cache.
string | getDbFile ()
protected string | getValue ( string $key) Retrieves a value from cache with a specified key.
void | init ( TXmlElement $config) Initializes this module.
void | setDbFile ( string $value)
protected boolean | setValue ( string $key, string $value, integer $expire) Stores a value identified by a key in cache.
Methods Inherited From TCache
TCache::add(), TCache::delete(), TCache::flush(), TCache::generateUniqueKey(), TCache::get(), TCache::getKeyPrefix(), TCache::getPrimaryCache(), TCache::init(), TCache::offsetExists(), TCache::offsetGet(), TCache::offsetSet(), TCache::offsetUnset(), TCache::set(), TCache::setKeyPrefix(), TCache::setPrimaryCache(),
Methods Inherited From TModule
TModule::getID(), TModule::init(), TModule::setID()
Methods Inherited From TApplicationComponent
TApplicationComponent::getApplication(), TApplicationComponent::getRequest(), TApplicationComponent::getResponse(), TApplicationComponent::getService(), TApplicationComponent::getSession(), TApplicationComponent::getUser(), TApplicationComponent::publishAsset(), TApplicationComponent::publishFilePath()
Methods Inherited From TComponent
TComponent::addParsedObject(), TComponent::attachEventHandler(), TComponent::canGetProperty(), TComponent::canSetProperty(), TComponent::createdOnTemplate(), TComponent::detachEventHandler(), TComponent::evaluateExpression(), TComponent::evaluateStatements(), TComponent::getEventHandlers(), TComponent::getSubProperty(), TComponent::hasEvent(), TComponent::hasEventHandler(), TComponent::hasProperty(), TComponent::raiseEvent(), TComponent::setSubProperty(), TComponent::__get(), TComponent::__set()
Constant Summary
string | CACHE_TABLE | name of the table storing cache data
string | DB_FILE_EXT | extension of the db file name
Method Details
## addValue
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.
Input
string | $key | the key identifying the value to be cached
string | $value | the value to be cached
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire.
Output
boolean | true if the value is successfully stored into cache, false otherwise
Exception
## deleteValue
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.
Input
string | $key | the key of the value to be deleted
Output
boolean | if no error happens during deletion
Exception
## flush
public void flush | ()
Deletes all values from cache. Be careful of performing this operation if the cache is shared by multiple applications.
Output
Exception
## getDbFile
public string getDbFile | ()
Output
string | database file path (in namespace form)
Exception
## getValue
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.
Input
string | $key | a unique key identifying the cached value
Output
string | the value stored in cache, false if the value is not in the cache or expired.
Exception
## init
public void init | (TXmlElement $config )
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.
Input
TXmlElement | $config | configuration for this module, can be null
Output
Exception
throws | TConfigurationException if sqlite extension is not installed, DbFile is set invalid, or any error happens during creating database or cache table.
## setDbFile
public void setDbFile | (string $value )
Input
string | $value | database file path (in namespace form)
Output
Exception
throws | TInvalidOperationException if the module is already initialized
throws | TConfigurationException if the file is not in proper namespace format
## setValue
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.
Input
string | $key | the key identifying the value to be cached
string | $value | the value to be cached
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire.
Output
boolean | true if the value is successfully stored into cache, false otherwise
Exception
Constant Details
### CACHE_TABLE name of the table storing cache data #### Type: string #### Value: 'cache'
### DB_FILE_EXT extension of the db file name #### Type: string #### Value: '.db'