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 TMemCache

TMemCache class

TMemCache implements a cache application module based on memcached.

TMemCache can be configured with the Host and Port properties, which specify the host and port of the memcache server to be used. By default, they take the value 'localhost' and 11211, respectively. These properties must be set before TMemCache::init() is invoked.

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
  • TMemCache::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 can be specified by the number of seconds (maximum 60*60*24*30) or a UNIX timestamp. 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.

Also note, there is no security measure to protected data in memcache. All data in memcache can be accessed by any process running in the system.

To use this module, the memcache PHP extension must be loaded.

Some usage examples of TMemCache are as follows,

$cache=new TMemCache;  // TMemCache may also be loaded as a Prado application module
$cache->init(null);
$cache->add('object',$object);
$object2=$cache->get('object');

You can configure TMemCache two different ways. If you only need one memcache server you may use the method as follows.

<module id="cache" class="System.Caching.TMemCache" Host="localhost" Port="11211" />

If you want a more complex configuration, you may use the method as follows.

<module id="cache" classs="System.Caching.TMemCache">
    <server Host="localhost" Port="11211" Weight="1" Timeout="300" RetryInterval="15" />
    <server Host="anotherhost" Port="11211" Weight="1" Timeout="300" RetryInterval="15" />
</module>

If loaded, TMemCache will register itself with TApplication as the cache module. It can be accessed via TApplication::getCache().

TMemCache may be configured in application configuration file as follows

<module id="cache" class="System.Caching.TMemCache" Host="localhost" Port="11211" />

where getHost Host and getPort Port are configurable properties of TMemCache.

Automatic compression of values may be used (using zlib extension) by setting getThreshold Threshold and getMinSavings MinSavings properties. NB : MemCache server(s) must be restarted to apply settings. Require (PECL memcache >= 2.0.0).

TComponent
Extended by TApplicationComponent
Extended by TModule implements IModule
Extended by TCache implements ICache, ArrayAccess
Extended by TMemCache
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/TMemCache.php
Methods summary
public
# __destruct( )

Destructor. Disconnect the memcache server.

Destructor. Disconnect the memcache server.

Overrides

TComponent::__destruct()
public
# init( TApplication $config )

Initializes this module. This method is required by the IModule interface. It makes sure that UniquePrefix has been set, creates a Memcache instance and connects to the memcache server.

Initializes this module. This method is required by the IModule interface. It makes sure that UniquePrefix has been set, creates a Memcache instance and connects to the memcache server.

Parameters

$config
TApplication
Prado application, can be null

Throws

TConfigurationException
if memcache extension is not installed or memcache sever connection fails

Overrides

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

Returns

string
host name of the memcache server
public
# setHost( string $value )

Parameters

$value
string
host name of the memcache server

Throws

TInvalidOperationException
if the module is already initialized
public integer
# getPort( )

Returns

integer
port number of the memcache server
public
# setPort( integer $value )

Parameters

$value
integer
port number of the memcache server

Throws

TInvalidOperationException
if the module is already initialized
public integer
# getThreshold( )

Returns

integer
minimum value length before attempting to compress
public
# setThreshold( integer $value )

Parameters

$value
integer
minimum value length before attempting to compress

Throws

TInvalidOperationException
if the module is already initialized
public float
# getMinSavings( )

Returns

float
minimum amount of savings to actually store the value compressed
public
# setMinSavings( float $value )

Parameters

$value
float
minimum amount of savings to actually store the value compressed

Throws

TInvalidOperationException
if the module is already initialized
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 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