トレイト 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 | string |
プレースホルダー名。 |
| $statements | string |
動的コンテンツを生成するためのPHPステートメント。 |
public function addDynamicPlaceholder($name, $statements)
{
$this->_dynamicPlaceholders[$name] = $statements;
}
動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツのキャッシュ機能を実装するために内部的に使用されます。
| public array getDynamicPlaceholders ( ) | ||
| return | array |
プレースホルダーのリスト。 |
|---|---|---|
public function getDynamicPlaceholders()
{
return $this->_dynamicPlaceholders;
}
動的コンテンツを使用してビューまたはビューファイルをレンダリングするために使用できるビューオブジェクトを返します。
| protected abstract yii\base\View getView ( ) | ||
| return | yii\base\View |
ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。 |
|---|---|---|
abstract protected function getView();
動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツのキャッシュ機能を実装するために内部的に使用されます。
| public void setDynamicPlaceholders ( $placeholders ) | ||
| $placeholders | array |
プレースホルダーのリスト。 |
public function setDynamicPlaceholders($placeholders)
{
$this->_dynamicPlaceholders = $placeholders;
}
$content 内のプレースホルダーを、評価された動的ステートメントの結果で置き換えます。
| protected string updateDynamicContent ( $content, $placeholders, $isRestoredFromCache = false ) | ||
| $content | string |
解析されるコンテンツ。 |
| $placeholders | string[] |
プレースホルダーとその値。 |
| $isRestoredFromCache | boolean |
コンテンツがキャッシュから復元されるかどうか。 |
| return | 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;
}
サインアップ または ログイン してコメントしてください。