Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
================ silva.core.cache ================ Presentation ============ This package provide a pluggable cache support for Silva related components, base on `Beaker <http://beaker.groovie.org/index.html>`_. By default content will be cached in memory, but you can use a different storage like files, memcache or an SQL database to store cached content. For a single instance installation we recommand to use memory as storage. For a ZEO / multi Zope instance installation we recommand to use memcache as storage. To use memcache recommend to install `pylibmc`, this can be done via buildout. Please refer to the installation documentation of Silva for this. After you can configure in your Zope configuration (``zope.conf``) which storage to use for which regions:: <product-config silva.core.cache> # default region default.lock_dir /tmp/memcache default.type ext:memcached default.url localhost:11211 # shared region shared.lock_dir /tmp/memcache shared.type ext:memcached shared.url someotherhost:11211 </product-config> API === Developers have different tools at their disposal, mainly: ``silva.core.cache.descriptors.cached_method`` Decorator that can be used on a class method to cache its computation. It can take a ``region`` which specify which caching region to use, a ``key`` which is a callable, taking as parameter the class on which the method is called to compute a caching key. If ``region`` is not specified, all other parameters are Beaker options used to configured the cache manager used. ``silva.core.cache.descriptors.cached_property`` Decorator that can be used on a class to create a read-only property where its computation is cached in Beaker. Except for ``key`` it takes the same parameters than ``cached_method``. ``silva.core.cache.store.Store`` Giving a cache name, it give a dictionnary like access to this cache. ``silva.core.cache.store.SessionStore`` Constructed out of a request, it is a dictionnary like access to a unique cache for this user session. The session is identified with the help of the adapter ``IClientId`` of ``zope.session``. An implementation of this adapter for Zope 2 is done in this package. ``silva.core.cache.interfaces.ICacheManager`` A global utility provides this interface to give you access to all cache managers used by this extension. ``silva.core.cache.memcacheutils.MemcacheSlice`` Store a list of items in memcache. Code repository =============== The code for this extension can be found in Git at: https://github.com/silvacms/silva.core.cache