mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-20 00:16:55 +02:00
983 B
983 B
3.7.0
Versioned cache segmentation
The cache API now maintains separate cache pools for each versioned stage. This prevents users from caching draft data and then exposing it on the live stage.
// Before:
$cache = SS_Cache::factory('myapp');
Versioned::set_reading_mode('Stage.Live');
$cache->save('Some draft content. Not for public viewing yet.', 'my_key');
Versioned::set_reading_mode('Stage.Stage');
$cache->load('my_key'); // 'Some draft content. Not for public viewing yet'
// After:
$cache = SS_Cache::factory('myapp');
Versioned::set_reading_mode('Stage.Live');
$cache->save('Some draft content. Not for public viewing yet.', 'my_key');
Versioned::set_reading_mode('Stage.Stage');
$cache->load('my_key'); // null
Data that is not content sensitive can be cached across stages by simply opting out of the segmented cache with the disable-container
argument.
$cache = SS_Cache::factory('myapp', 'Output', array('disable-container' => true));