dev-master
9999999-devA Propel ORM behavior that provide auto data caching for model and collections. Based on snakano/propel-data-cache-behavior
MIT
The Requires
by Shinya Nakano
by Diego Rin MartĂn
cache behavior propel
A Propel ORM behavior that provide auto data caching for model and collections. Based on snakano/propel-data-cache-behavior
A Propel ORM behavior that provide auto data caching to your model. Based on Propel 1.6 work of SNakano., (*2)
Query Cache Behavior is caching transformation of a query object (caching SQL code). This Behavior is caching the results of database. (caching result data), (*3)
Add a dependency on thefuriouscoder/propel2-data-cache-behavior
to your project's composer.json
file., (*4)
{ "require": { "thefuriouscoder/propel2-data-cache-behavior": "dev-master" } }
<table name="book"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="VARCHAR" required="true" primaryString="true" /> <behavior name="data_cache"> <parameter name="backend" value="apc" /> <!-- cache system. "apc" or "memcache", default "apc". (optional) --> <parameter name="lifetime" value="3600" /> <!-- cache expire time (second). default 3600 (optional) --> <parameter name="auto_cache" value="true" /> <!-- auto cache enable. default true (optional) --> </behavior> </table>
Add the following configuration code to your project bootstraping file depending on the storage you are goinng to use., (*5)
// configure memcached setting. TFC\Cache\DoctrineCacheFactory::setOption( array( 'storage' => 'memcached', 'prefix' => 'rlyeh', 'default_ttl' => 3600, 'servers' => array( array('server1', 11211, 20), array('server2', 11211, 80) ) ) );
// configure APC setting. TFC\Cache\DoctrineCacheFactory::setOption( array( 'storage' => 'apc', 'default_ttl' => 3600 ) );
// configure Redis setting. TFC\Cache\DoctrineCacheFactory::setOption( array( 'storage' => 'redis', 'prefix' => 'rlyeh', 'host => '127.0.0.1', 'port' => 6379, 'default_ttl' => 3600 ) );
$title = 'Cthulhu Mythos'; BookQuery::create() ->filterByTitle($title) ->findOne(); // from Database BookQuery::create() ->filterByTitle($title) ->findOne(); // from caching system
$title = 'Cthulhu Mythos'; BookQuery::create() ->setCacheDisable() // disable cache ->filterByTitle($title) ->findOne();
$book = new Book; $book->setId(1); $book->setTitle("Cthulhu Myhtos"); $book->save(); // purge cache.
save()
method.delete()
method.BookQuery::doDeleteAll()
method.BookQuery::purgeCache()
method.$title = 'Cthulhu Mythos'; $query = BookQuery::create(); $book = $query->filterByTitle($title)->findOne(); $cacheKey = $query->getCacheKey(); // get cache key. BookPeer::cacheDelete($cacheKey); // delete cache by key.
MIT License, (*6)
A Propel ORM behavior that provide auto data caching for model and collections. Based on snakano/propel-data-cache-behavior
MIT
cache behavior propel