Trait yii\base\DynamicContentAwareTrait
Implemented by | luya\web\filters\ResponseCache, yii\filters\PageCache, yii\widgets\FragmentCache |
---|---|
Available since version | 2.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
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
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
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;
}
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;
}
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();
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;
}
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;
}