TDbCache class
TDbCache implements a cache application module by storing cached data in a database.
TDbCache relies on PDO to retrieve data from databases. In order to use TDbCache, you need to enable the PDO extension as well as the corresponding PDO DB driver. For example, to use SQLite database to store cached data, you need both php_pdo and php_pdo_sqlite extensions.
By default, TDbCache creates and uses an SQLite database under the application runtime directory. You may change this default setting by specifying the following properties:
Note, some DBMS might not support BLOB type. In this case, replace 'BLOB' with a suitable binary data type (e.g. LONGBLOB in MySQL, BYTEA in PostgreSQL.)
If you want to change the cache table name, or if you want to create the table by yourself, you may set CacheTableName and AutoCreateCacheTableName properties.
The following basic cache operations are implemented:
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 TDbCache. Also note, cache is shared by all user sessions of an application.
Some usage examples of TDbCache are as follows,
If loaded, TDbCache will register itself with TApplication as the cache module. It can be accessed via TApplication::getCache().
TDbCache may be configured in application configuration file as follows
- <module id="cache" class="System.Caching.TDbCache" />
Located in /Caching/TDbCache.php (line 80)
TComponent | --TApplicationComponent | --TModule | --TCache | --TDbCache
Destructor.
Disconnect the db connection.
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.
Creates the DB connection.
Deletes a value with the specified key from cache This is the implementation of the method declared in the parent class.
Deletes all values from cache.
Be careful of performing this operation if the cache is shared by multiple applications.
Retrieves a value from cache with a specified key.
This is the implementation of the method declared in the parent class.
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.
Sets the name of the DB table to store cache content.
Note, if AutoCreateCacheTable is false and you want to create the DB table manually by yourself, you need to make sure the DB table is of the following structure: (itemkey CHAR(128) PRIMARY KEY, value BLOB, expire INT) Note, some DBMS might not support BLOB type. In this case, replace 'BLOB' with a suitable binary data type (e.g. LONGBLOB in MySQL, BYTEA in PostgreSQL.)
Sets the ID of a TDataSourceConfig module.
The datasource module will be used to establish the DB connection for this cache module. The database connection can also be specified via ConnectionString. When both ConnectionID and ConnectionString are specified, the former takes precedence.
Stores a value identified by a key in cache.
This is the implementation of the method declared in the parent class.
Inherited From TCache
TCache::add()
TCache::addValue()
TCache::delete()
TCache::deleteValue()
TCache::flush()
TCache::generateUniqueKey()
TCache::get()
TCache::getKeyPrefix()
TCache::getPrimaryCache()
TCache::getValue()
TCache::init()
TCache::offsetExists()
TCache::offsetGet()
TCache::offsetSet()
TCache::offsetUnset()
TCache::set()
TCache::setKeyPrefix()
TCache::setPrimaryCache()
TCache::setValue()
Inherited From TModule
TModule::getID()
TModule::init()
TModule::setID()
Inherited From TApplicationComponent
TApplicationComponent::getApplication()
TApplicationComponent::getRequest()
TApplicationComponent::getResponse()
TApplicationComponent::getService()
TApplicationComponent::getSession()
TApplicationComponent::getUser()
TApplicationComponent::publishAsset()
TApplicationComponent::publishFilePath()
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()
Documentation generated on Mon, 21 Apr 2008 11:34:49 -0400 by phpDocumentor 1.3.0RC4