Skip to content
Add ability to cache dataobjects in a transparent way.
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_config
code
tests
.editorconfig
.scrutinizer.yml
.travis.yml
LICENSE.md
README.md
_config.php
composer.json

README.md

Silverstripe Caching

Build Status Latest Stable Version License

Add ability to cache data objects, function results and arbitrary data.

Usage

Like other extensions, you can add the ability to automatically cache objects with the following code to your YAML files.

Member:
  extensions:
    - CacheableExtension

It is recommended to specify rather another cache than Silverstripe's default cache, because it is configured to use the file cache backend. This could be much worse than the direct access to the database.

How it works

When requesting a data object with <ClassName>::byID or <ClassName>::byURL the cached data list implementation evaluates if the request object is flagged as cacheable. If this is true, the cache will be requested and only if nothing is found, the database is accessed. After fetching the object, every has_one dependency is fetched and the result is stored in a cache.

When a data object should be deleted or was modified, the cache entry will be cleared or alternated respectively.

You can’t perform that action at this time.