mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
26 lines
983 B
Markdown
26 lines
983 B
Markdown
|
# 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.
|
||
|
|
||
|
```php
|
||
|
// 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.
|
||
|
|
||
|
```php
|
||
|
$cache = SS_Cache::factory('myapp', 'Output', array('disable-container' => true));
|
||
|
```
|