Trait yii\base\DynamicContentAwareTrait

Implemented byluya\web\filters\ResponseCache, yii\filters\PageCache, yii\widgets\FragmentCache
Available since version2.0.14
Source Code https://github.com/yiisoft/yii2/blob/master/framework/base/DynamicContentAwareTrait.php

DynamicContentAwareTrait implements common methods for classes which support a yii\base\View dynamic content feature.

Public Methods

Hide inherited methods

Method Description Defined By
addDynamicPlaceholder() Adds a placeholder for dynamic content. yii\base\DynamicContentAwareTrait
getDynamicPlaceholders() Returns a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. yii\base\DynamicContentAwareTrait
setDynamicPlaceholders() Sets a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. yii\base\DynamicContentAwareTrait

Protected Methods

Hide inherited methods

Method Description Defined By
getView() Returns the view object that can be used to render views or view files using dynamic contents. yii\base\DynamicContentAwareTrait
updateDynamicContent() Replaces placeholders in $content with results of evaluated dynamic statements. yii\base\DynamicContentAwareTrait

Method Details

Hide inherited methods

addDynamicPlaceholder() public method

Adds a placeholder for dynamic content.

This method is used internally to implement the content caching feature.

public void addDynamicPlaceholder ( $name, $statements )
$name string

The placeholder name.

$statements string

The PHP statements for generating the dynamic content.

                public function addDynamicPlaceholder($name, $statements)
{
    $this->_dynamicPlaceholders[$name] = $statements;
}

            
getDynamicPlaceholders() public method

Returns a list of placeholders for dynamic content. This method is used internally to implement the content caching feature.

public array getDynamicPlaceholders ( )
return array

A list of placeholders.

                public function getDynamicPlaceholders()
{
    return $this->_dynamicPlaceholders;
}

            
getView() protected abstract method

Returns the view object that can be used to render views or view files using dynamic contents.

protected abstract yii\base\View getView ( )
return yii\base\View

The view object that can be used to render views or view files.

                abstract protected function getView();

            
setDynamicPlaceholders() public method

Sets a list of placeholders for dynamic content. This method is used internally to implement the content caching feature.

public void setDynamicPlaceholders ( $placeholders )
$placeholders array

A list of placeholders.

                public function setDynamicPlaceholders($placeholders)
{
    $this->_dynamicPlaceholders = $placeholders;
}

            
updateDynamicContent() protected method

Replaces placeholders in $content with results of evaluated dynamic statements.

protected string updateDynamicContent ( $content, $placeholders, $isRestoredFromCache false )
$content string

Content to be parsed.

$placeholders string[]

Placeholders and their values.

$isRestoredFromCache boolean

Whether content is going to be restored from cache.

return string

Final content.

                protected function updateDynamicContent($content, $placeholders, $isRestoredFromCache = false)
{
    if (empty($placeholders) || !is_array($placeholders)) {
        return $content;
    }
    if (count($this->getView()->getDynamicContents()) === 0) {
        // outermost cache: replace placeholder with dynamic content
        foreach ($placeholders as $name => $statements) {
            $placeholders[$name] = $this->getView()->evaluateDynamicContent($statements);
        }
        $content = strtr($content, $placeholders);
    }
    if ($isRestoredFromCache) {
        $view = $this->getView();
        foreach ($placeholders as $name => $statements) {
            $view->addDynamicPlaceholder($name, $statements);
        }
    }
    return $content;
}