Passed
Push — master ( 1a4aeb...c4d310 )
by Nicolaas
03:20
created

ControllerExtension   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
dl 0
loc 16
rs 10
c 1
b 0
f 0
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A onBeforeInit() 0 14 5
1
<?php
2
3
use SilverStripe\CMS\Controllers\ContentController;
4
use SilverStripe\Control\Middleware\HTTPCacheControlMiddleware;
5
use SilverStripe\Core\Extension;
6
use SilverStripe\Versioned\Versioned;
7
8
class ControllerExtension extends Extension
9
{
10
    public function onBeforeInit()
11
    {
12
        $owner = $this->getOwner();
13
        if($owner instanceof ContentController) {
14
            if(Versioned::get_stage() !== 'Live') {
15
                return;
16
            }
17
            if(empty($owner->dataRecord) || empty($owner->dataRecord->PublicCacheDurationInSeconds)) {
18
                return;
19
            }
20
            HTTPCacheControlMiddleware::singleton()
21
                ->enableCache()
22
                ->publicCache(true)
23
                ->setMaxAge($owner->dataRecord->PublicCacheDurationInSeconds);
24
        }
25
    }
26
}
27