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 |
方法詳細資訊
為動態內容新增一個佔位符。
此方法在內部用於實作內容快取功能。
public void addDynamicPlaceholder ( $name, $statements ) | ||
$name | 字串 |
佔位符名稱。 |
$statements | 字串 |
用於產生動態內容的 PHP 語句。 |
public function addDynamicPlaceholder($name, $statements)
{
$this->_dynamicPlaceholders[$name] = $statements;
}
傳回動態內容的佔位符列表。此方法在內部用於實作內容快取功能。
public array getDynamicPlaceholders ( ) | ||
回傳 | 陣列 |
佔位符的列表。 |
---|
public function getDynamicPlaceholders()
{
return $this->_dynamicPlaceholders;
}
傳回視圖物件,該物件可用於使用動態內容渲染視圖或視圖檔案。
protected abstract yii\base\View getView ( ) | ||
回傳 | yii\base\View |
可用於渲染視圖或視圖檔案的視圖物件。 |
---|
abstract protected function getView();
設定動態內容的佔位符列表。此方法在內部用於實作內容快取功能。
public void setDynamicPlaceholders ( $placeholders ) | ||
$placeholders | 陣列 |
佔位符的列表。 |
public function setDynamicPlaceholders($placeholders)
{
$this->_dynamicPlaceholders = $placeholders;
}
用評估後的動態語句結果替換 $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;
}
註冊 或 登入 以發表評論。