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 字串

佔位符名稱。

$statements 字串

用於產生動態內容的 PHP 語句。

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

            
getDynamicPlaceholders() 公開方法

傳回動態內容的佔位符列表。此方法在內部用於實作內容快取功能。

public array getDynamicPlaceholders ( )
回傳 陣列

佔位符的列表。

                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 陣列

佔位符的列表。

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

            
updateDynamicContent() 受保護的方法

用評估後的動態語句結果替換 $content 中的佔位符。

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

要解析的內容。

$placeholders 字串[]

佔位符及其值。

$isRestoredFromCache 布林值

內容是否將從快取還原。

回傳 字串

最終內容。

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