framework/filters/PageCache.php
public function cacheResponse()
    {
        $this->view->popDynamicContent();
        $beforeCacheResponseResult = $this->beforeCacheResponse();
        if ($beforeCacheResponseResult === false) {
            echo $this->updateDynamicContent(ob_get_clean(), $this->getDynamicPlaceholders());
            return;
        }

        $response = Yii::$app->getResponse();
        $response->off(Response::EVENT_AFTER_SEND, [$this, 'cacheResponse']);
        $data = [
            'cacheVersion' => static::PAGE_CACHE_VERSION,
            'cacheData' => is_array($beforeCacheResponseResult) ? $beforeCacheResponseResult : null,
            'content' => ob_get_clean(),
        ];
        if ($data['content'] === false || $data['content'] === '') {
            return;
        }

        $data['dynamicPlaceholders'] = $this->getDynamicPlaceholders();
        foreach (['format', 'version', 'statusCode', 'statusText'] as $name) {
            $data[$name] = $response->{$name};
        }
        $this->insertResponseCollectionIntoData($response, 'headers', $data);
        $this->insertResponseCollectionIntoData($response, 'cookies', $data);
        $this->cache->set($this->calculateCacheKey(), $data, $this->duration, $this->dependency);
        $data['content'] = $this->updateDynamicContent($data['content'], $this->getDynamicPlaceholders());
        echo $data['content'];
    }
public function cacheResponse()
    {
        $this->view->popDynamicContent();
        $beforeCacheResponseResult = $this->beforeCacheResponse();
        if ($beforeCacheResponseResult === false) {
            echo $this->updateDynamicContent(ob_get_clean(), $this->getDynamicPlaceholders());
            return;
        }

        $response = Yii::$app->getResponse();
        $response->off(Response::EVENT_AFTER_SEND, [$this, 'cacheResponse']);
        $data = [
            'cacheVersion' => static::PAGE_CACHE_VERSION,
            'cacheData' => is_array($beforeCacheResponseResult) ? $beforeCacheResponseResult : null,
            'content' => ob_get_clean(),
        ];
        if ($data['content'] === false || $data['content'] === '') {
            return;
        }

        $data['dynamicPlaceholders'] = $this->getDynamicPlaceholders();
        foreach (['format', 'version', 'statusCode', 'statusText'] as $name) {
            $data[$name] = $response->{$name};
        }
        $this->insertResponseCollectionIntoData($response, 'headers', $data);
        $this->insertResponseCollectionIntoData($response, 'cookies', $data);
        $this->cache->set($this->calculateCacheKey(), $data, $this->duration, $this->dependency);
        $data['content'] = $this->updateDynamicContent($data['content'], $this->getDynamicPlaceholders());
        echo $data['content'];
    }
public function cacheResponse ( ) { $ this -> view -> popDynamicContent ( ) ; $ beforeCacheResponseResult = $ this -> beforeCacheResponse ( ) ; if ( $ beforeCacheResponseResult === false ) { echo $ this -> updateDynamicContent ( ob_get_clean ( ) , $ this -> getDynamicPlaceholders ( ) ) ; return ; } $ response = Yii :: $ app -> getResponse ( ) ; $ response -> off ( Response :: EVENT_AFTER_SEND , [ $ this , 'cacheResponse' ] ) ; $ data = [ 'cacheVersion' => static :: PAGE_CACHE_VERSION , 'cacheData' => is_array ( $ beforeCacheResponseResult ) ? $ beforeCacheResponseResult : null , 'content' => ob_get_clean ( ) , ] ; if ( $ data [ 'content' ] === false || $ data [ 'content' ] === '' ) { return ; } $ data [ 'dynamicPlaceholders' ] = $ this -> getDynamicPlaceholders ( ) ; foreach ( [ 'format' , 'version' , 'statusCode' , 'statusText' ] as $ name ) { $ data [ $ name ] = $ response -> { $ name } ; } $ this -> insertResponseCollectionIntoData ( $ response , 'headers' , $ data ) ; $ this -> insertResponseCollectionIntoData ( $ response , 'cookies' , $ data ) ; $ this -> cache -> set ( $ this -> calculateCacheKey ( ) , $ data , $ this -> duration , $ this -> dependency ) ; $ data [ 'content' ] = $ this -> updateDynamicContent ( $ data [ 'content' ] , $ this -> getDynamicPlaceholders ( ) ) ; echo $ data [ 'content' ] ; }
Caches response properties.
@since 2.0.3
Caches response properties .