PRADO Component Framework for PHP 5
  • Home
  • About
  • Testimonials
  • Demos
  • Download
  • Documentation
  • Forum
  • Development
  • Tutorials
  • Class Docs
  • API Manual
  • Wiki

Packages

  • None
  • System
    • Caching
    • Collections
    • Data
      • ActiveRecord
        • Relations
        • Scaffold
          • InputBuilder
      • Commom
        • Sqlite
      • Common
        • Mssql
        • Mysql
        • Oracle
        • Pgsql
        • Sqlite
      • DataGateway
      • SqlMap
        • Configuration
        • Statements
    • Exceptions
    • I18N
    • IO
    • Security
    • Util
    • Web
      • Javascripts
      • Services
      • UI
        • ActiveControls
        • WebControls
    • Xml
  • Wsat
    • pages
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo

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 cache
  • TCache::set() : store the value with a key into cache
  • TCache::add() : store the value only if cache does not have this key
  • TCache::delete() : delete the value with the specified key from cache
  • TSqliteCache::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
Extended by TApplicationComponent
Extended by TModule implements IModule
Extended by TCache implements ICache, ArrayAccess
Extended by TSqliteCache
Package: System\Caching
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
Methods summary
public
# __destruct( )

Destructor. Disconnect the db connection.

Destructor. Disconnect the db connection.

Overrides

TComponent::__destruct()
public
# 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.

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.

Parameters

$config
TXmlElement
configuration for this module, can be null

Throws

TConfigurationException
if sqlite extension is not installed, DbFile is set invalid, or any error happens during creating database or cache table.

Overrides

TCache::init()
public string
# getDbFile( )

Returns

string
database file path (in namespace form)
public
# setDbFile( string $value )

Parameters

$value
string
database file path (in namespace form)

Throws

TInvalidOperationException
if the module is already initialized
TConfigurationException
if the file is not in proper namespace format
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.

Retrieves a value from cache with a specified key. This is the implementation of the method declared in the parent class.

Parameters

$key
string
a unique key identifying the cached value

Returns

string
the value stored in cache, false if the value is not in the cache or expired.
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.

Stores a value identified by a key in cache. This is the implementation of the method declared in the parent class.

Parameters

$key
string
the key identifying the value to be cached
$value
string
the value to be cached
$expire
integer
the number of seconds in which the cached value will expire. 0 means never expire.

Returns

boolean
true if the value is successfully stored into cache, false otherwise
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.

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.

Parameters

$key
string
the key identifying the value to be cached
$value
string
the value to be cached
$expire
integer
the number of seconds in which the cached value will expire. 0 means never expire.

Returns

boolean
true if the value is successfully stored into cache, false otherwise
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.

Deletes a value with the specified key from cache This is the implementation of the method declared in the parent class.

Parameters

$key
string
the key of the value to be deleted

Returns

boolean
if no error happens during deletion
public
# flush( )

Deletes all values from cache. Be careful of performing this operation if the cache is shared by multiple applications.

Deletes all values from cache. Be careful of performing this operation if the cache is shared by multiple applications.

Throws

TNotSupportedException
if this method is not overridden by child classes

Overrides

TCache::flush()
Methods inherited from TCache
add(), delete(), generateUniqueKey(), get(), getKeyPrefix(), getPrimaryCache(), offsetExists(), offsetGet(), offsetSet(), offsetUnset(), set(), setKeyPrefix(), setPrimaryCache()
Methods inherited from TModule
getID(), setID()
Methods inherited from TApplicationComponent
getApplication(), getRequest(), getResponse(), getService(), getSession(), getUser(), publishAsset(), publishFilePath()
Methods inherited from TComponent
__call(), __construct(), __get(), __isset(), __set(), __sleep(), __unset(), __wakeup(), addParsedObject(), asa(), attachBehavior(), attachBehaviors(), attachClassBehavior(), attachEventHandler(), canGetProperty(), canSetProperty(), clearBehaviors(), createdOnTemplate(), detachBehavior(), detachBehaviors(), detachClassBehavior(), detachEventHandler(), disableBehavior(), disableBehaviors(), enableBehavior(), enableBehaviors(), evaluateExpression(), evaluateStatements(), fxAttachClassBehavior(), fxDetachClassBehavior(), getAutoGlobalListen(), getBehaviorsEnabled(), getClassHierarchy(), getEventHandlers(), getListeningToGlobalEvents(), getSubProperty(), hasEvent(), hasEventHandler(), hasProperty(), isa(), listen(), raiseEvent(), setSubProperty(), unlisten()
Constants summary
string CACHE_TABLE 'cache'
#

name of the table storing cache data

name of the table storing cache data

string DB_FILE_EXT '.db'
#

extension of the db file name

extension of the db file name

Constants inherited from TComponent
GLOBAL_RAISE_EVENT_LISTENER
Terms of Service | Contact Us
PRADO v3.2.4 API Manual API documentation generated by ApiGen 2.8.0
Copyright © 2006-2014 by the PRADO Group.
Powered by PRADO