0 关注者

Trait yii\base\DynamicContentAwareTrait

实现于yii\filters\PageCache, yii\widgets\FragmentCache
版本支持2.0.14
源代码 https://github.com/yiisoft/yii2/blob/master/framework/base/DynamicContentAwareTrait.php

DynamicContentAwareTrait 为支持 yii\base\View 动态内容功能的类实现通用方法。

公共方法

隐藏继承方法

方法 描述 定义于
addDynamicPlaceholder() 为动态内容添加占位符。 yii\base\DynamicContentAwareTrait
getDynamicPlaceholders() 返回动态内容的占位符列表。此方法在内部使用以实现内容缓存功能。 yii\base\DynamicContentAwareTrait
setDynamicPlaceholders() 设置动态内容的占位符列表。此方法在内部使用以实现内容缓存功能。 yii\base\DynamicContentAwareTrait

受保护方法

隐藏继承方法

方法 描述 定义于
getView() 返回可用于使用动态内容渲染视图或视图文件的视图对象。 yii\base\DynamicContentAwareTrait
updateDynamicContent() 用已评估的动态语句的结果替换 $content 中的占位符。 yii\base\DynamicContentAwareTrait

方法详细说明

隐藏继承方法

addDynamicPlaceholder() 公共方法

为动态内容添加占位符。

此方法在内部使用以实现内容缓存功能。

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

占位符名称。

$statements string

用于生成动态内容的 PHP 语句。

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

            
getDynamicPlaceholders() 公共方法

返回动态内容的占位符列表。此方法在内部使用以实现内容缓存功能。

public array getDynamicPlaceholders ( )
返回 array

占位符列表。

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

            
getView() 受保护抽象方法

返回可用于使用动态内容渲染视图或视图文件的视图对象。

protected abstract yii\base\View getView ( )
返回 yii\base\View

可用于渲染视图或视图文件的视图对象。

                abstract protected function getView();

            
setDynamicPlaceholders() 公共方法

设置动态内容的占位符列表。此方法在内部使用以实现内容缓存功能。

public void setDynamicPlaceholders ( $placeholders )
$placeholders array

占位符列表。

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

            
updateDynamicContent() 受保护方法

用已评估的动态语句的结果替换 $content 中的占位符。

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

要解析的内容。

$placeholders string[]

占位符及其值。

$isRestoredFromCache boolean

内容是否将从缓存中恢复。

返回 string

最终内容。

                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;
}