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

ControllerExtension::onBeforeInit()   A

Complexity

Conditions 5
Paths 4

Size

Total Lines 14
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 10
nc 4
nop 0
dl 0
loc 14
rs 9.6111
c 1
b 0
f 0
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