1 フォロワー

クラス yii\filters\PageCache

継承yii\filters\PageCache » yii\base\ActionFilter » yii\base\Behavior » yii\base\BaseObject
実装yii\base\Configurable, yii\base\DynamicContentAwareInterface
使用トレイトyii\base\DynamicContentAwareTrait
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/filters/PageCache.php

PageCache は、ページ全体のサーバーサイドキャッシングを実装します。

これはコントローラに追加でき、beforeActionイベントを処理するアクションフィルターです。

PageCache を使用するには、コントローラクラスのbehaviors()メソッドで宣言します。次の例では、フィルターがindexアクションに適用され、投稿テーブルのエントリ数が変化するまで、または最大60秒間、ページ全体がキャッシュされます。また、アプリケーションの言語に応じて異なるバージョンのページが保存されます。

public function behaviors()
{
    return [
        'pageCache' => [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
            'variations' => [
                \Yii::$app->language,
            ]
        ],
    ];
}

パブリックプロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$cache yii\caching\CacheInterface|array|string キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネントID。 yii\filters\PageCache
$cacheCookies boolean|array すべてのクッキーをキャッシュするかどうかを示すブール値、またはどのクッキーをキャッシュできるかを示すクッキー名の配列。 yii\filters\PageCache
$cacheHeaders boolean|array すべてのHTTPヘッダーをキャッシュするかどうかを示すブール値、またはどのHTTPヘッダーをキャッシュできるかを示すHTTPヘッダー名(大文字と小文字を区別)の配列。 yii\filters\PageCache
$dependency array|yii\caching\Dependency キャッシュされたコンテンツが依存する依存関係。 yii\filters\PageCache
$duration integer データがキャッシュ内で有効なままにできる秒数。 yii\filters\PageCache
$dynamicPlaceholders array プレースホルダーのリスト。 yii\base\DynamicContentAwareTrait
$enabled boolean ページキャッシュを有効にするかどうか。 yii\filters\PageCache
$except array このフィルターを適用しないアクションIDのリスト。 yii\base\ActionFilter
$only array このフィルターを適用するアクションIDのリスト。 yii\base\ActionFilter
$owner yii\base\Component|null このビヘイビアのオーナー yii\base\Behavior
$variations string[]|string|callable キャッシュされるコンテンツのバリエーションを引き起こす要因のリスト。 yii\filters\PageCache
$varyByRoute boolean キャッシュされるコンテンツがルートに応じて区別されるべきかどうか。 yii\filters\PageCache
$view yii\base\View|null キャッシュに使用するビューコンポーネント。 yii\filters\PageCache

パブリックメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\BaseObject
__construct() コンストラクタ。 yii\base\BaseObject
__get() オブジェクトプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されているか、つまり定義されていてnullではないかを確認します。 yii\base\BaseObject
__set() オブジェクトプロパティの値を設定します。 yii\base\BaseObject
__unset() オブジェクトプロパティをnullに設定します。 yii\base\BaseObject
addDynamicPlaceholder() 動的コンテンツのプレースホルダーを追加します。 yii\base\DynamicContentAwareTrait
afterAction() このメソッドは、アクションの実行直後に呼び出されます。 yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
afterRestoreResponse() このメソッドは、応答の復元が完了した後(ただし、応答が送信される前)に呼び出されます。 yii\filters\PageCache
attach() ビヘイビアオブジェクトをコンポーネントにアタッチします。 yii\base\ActionFilter
beforeAction() このメソッドは、アクションが実行される直前(可能なすべてのフィルターの後)に呼び出されます。アクションの直前準備を行うために、このメソッドをオーバーライドできます。 yii\filters\PageCache
beforeCacheResponse() このメソッドは、応答のキャッシュが開始される直前に呼び出されます。 yii\filters\PageCache
beforeFilter() yii\base\ActionFilter
cacheResponse() 応答プロパティをキャッシュします。 yii\filters\PageCache
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detach() ビヘイビアオブジェクトをコンポーネントからデタッチします。 yii\base\ActionFilter
events() $ownerのイベントのイベントハンドラーを宣言します。 yii\base\Behavior
getDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツキャッシング機能を実装するために内部的に使用されます。 yii\base\DynamicContentAwareTrait
getView() yii\filters\PageCache
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\filters\PageCache
setDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツキャッシング機能を実装するために内部的に使用されます。 yii\base\DynamicContentAwareTrait

プロテクトメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
calculateCacheKey() yii\filters\PageCache
getActionId() yii\base\Action::$uniqueIdをモジュールに対する相対IDに変換して、アクションIDを返します。 yii\base\ActionFilter
isActive() 指定されたアクションに対してフィルターがアクティブかどうかを示す値を返します。 yii\base\ActionFilter
restoreResponse() 指定されたデータから応答プロパティを復元します。 yii\filters\PageCache
updateDynamicContent() $content内のプレースホルダーを評価された動的ステートメントの結果に置き換えます。 yii\base\DynamicContentAwareTrait

定数

継承された定数を非表示

定数 説明 定義元
PAGE_CACHE_VERSION 1 キャッシュのデータ形式が変更されたときに、キャッシュされた値の非互換性を検出するためのページキャッシュバージョン。 yii\filters\PageCache

プロパティの詳細

継承されたプロパティを非表示

$cache パブリックプロパティ

キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネントID。PageCacheオブジェクト作成後、このプロパティを変更したい場合は、キャッシュオブジェクトのみを代入する必要があります。バージョン2.0.2以降では、オブジェクトを作成するための設定配列にすることもできます。

$cacheCookies public プロパティ (バージョン 2.0.4 から利用可能)

すべてのクッキーをキャッシュするかどうかを示すブール値、またはキャッシュできるクッキーの名前を示すクッキー名の配列。クッキーに保存されている機密データや個人データが不必要なユーザーに漏洩する可能性があるため、クッキーのキャッシュには十分注意してください。

public boolean|array $cacheCookies false
$cacheHeaders public プロパティ (バージョン 2.0.4 から利用可能)

すべてのHTTPヘッダーをキャッシュするかどうかを示すブール値、またはキャッシュできるHTTPヘッダー名(大文字と小文字を区別)を示すHTTPヘッダー名の配列。HTTPヘッダーに機密情報が含まれている場合は、キャッシュできるヘッダーをホワイトリストに登録する必要があります。

public boolean|array $cacheHeaders true
$dependency public プロパティ

キャッシュされたコンテンツが依存する依存関係。これは、yii\caching\Dependency オブジェクト、または依存関係オブジェクトを作成するための構成配列のいずれかです。例:

[
    'class' => 'yii\caching\DbDependency',
    'sql' => 'SELECT MAX(updated_at) FROM post',
]

これにより、出力キャッシュはすべての投稿の最終更新時刻に依存するようになります。投稿の変更時刻が変更されると、キャッシュされたコンテンツは無効になります。

$cacheCookies または $cacheHeaders が有効になっている場合は、パフォーマンスを向上させるために yii\caching\Dependency::$reusable も有効にする必要があります。これは、クッキーとヘッダーが現在実際のページコンテンツとは別に保存されているため、依存関係が2回評価されるためです。

$duration public プロパティ

データがキャッシュ内で有効な状態を維持できる秒数。キャッシュされたデータが期限切れにならないようにするには、0を使用します。

public integer $duration 60
$enabled public プロパティ

ページキャッシュを有効にするかどうか。このプロパティを使用して、特定の設定(例えば、GETリクエストの場合のみページキャッシュを有効にする)に応じてページキャッシュのオンとオフを切り替えることができます。

public boolean $enabled true
$variations public プロパティ

キャッシュされるコンテンツのバリエーションを引き起こす可能性のある要因のリスト。各要因は、バリエーション(例:言語、GETパラメータ)を表す文字列です。次のバリエーション設定により、現在のアプリケーション言語に応じて、コンテンツが異なるバージョンでキャッシュされます。

[
    Yii::$app->language,
]

バージョン 2.0.48 以降では、匿名関数を提供してバリエーションを生成できます。これは、PageCache の動作前に解決されるユーザーコンポーネントにアクセスする必要がある場合に特に役立ちます。

'variations' => function() {
    return [
        Yii::$app->language,
        Yii::$app->user->id
    ];
}

呼び出し可能関数は配列を返す必要があります。

$varyByRoute public プロパティ

キャッシュされるコンテンツをルートに応じて区別するかどうか。ルートは、リクエストされたコントローラーIDとアクションIDで構成されます。デフォルトはtrueです。

public boolean $varyByRoute true
$view public プロパティ

キャッシングに使用するビューコンポーネント。設定されていない場合は、デフォルトのアプリケーションビューコンポーネント yii\web\Application::$view が使用されます。

public yii\base\View|null $view null

メソッドの詳細

継承されたメソッドを非表示

__call() public メソッド

定義元: yii\base\BaseObject::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

未知のメソッドが呼び出されたときに暗黙的に呼び出されるPHPマジックメソッドであるため、このメソッドを直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出した場合

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public メソッド

定義元: yii\base\BaseObject::__construct()

コンストラクタ。

デフォルトの実装では、次の2つのことが行われます。

  • 指定された構成$configでオブジェクトを初期化します。
  • init() を呼び出します。

子クラスでこのメソッドがオーバーライドされている場合は、次のことを推奨します。

  • コンストラクターの最後のパラメータは、ここでの $config のような構成配列です。
  • コンストラクターの最後に親の実装を呼び出します。
public void __construct ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public メソッド

定義場所: yii\base\BaseObject::__get()

オブジェクトプロパティの値を返します。

$value = $object->property;を実行する際に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらも参照してください: __set()

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public メソッド

定義場所: yii\base\BaseObject::__isset()

プロパティが設定されているか、つまり定義されていてnullではないかを確認します。

isset($object->property)を実行する際に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

プロパティが定義されていない場合、falseが返されることに注意してください。

こちらも参照してください: https://www.php.net/manual/en/function.isset.php

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

指定された名前のプロパティが設定されている(nullでない)かどうか。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public メソッド

定義場所: yii\base\BaseObject::__set()

オブジェクトプロパティの値を設定します。

$object->property = $value;を実行する際に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらも参照してください: __get()

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() public メソッド

定義場所: yii\base\BaseObject::__unset()

オブジェクトプロパティをnullに設定します。

unset($object->property)を実行する際に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

プロパティが定義されていない場合、このメソッドは何も実行しません。プロパティが読み取り専用の場合、例外をスローします。

こちらも参照してください: https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
addDynamicPlaceholder() public メソッド

定義場所: yii\base\DynamicContentAwareTrait::addDynamicPlaceholder()

動的コンテンツのプレースホルダーを追加します。

このメソッドは、コンテンツキャッシュ機能を実装するために内部的に使用されます。

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

プレースホルダー名。

$statements string

動的コンテンツを生成するためのPHPステートメント。

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

            
afterAction() public メソッド

定義場所: yii\base\ActionFilter::afterAction()

このメソッドは、アクションの実行直後に呼び出されます。

アクションの後処理を行うために、このメソッドをオーバーライドできます。

public mixed afterAction ( $action, $result )
$action yii\base\Action

実行されたアクション。

$result mixed

アクションの実行結果

return mixed

処理されたアクションの結果。

                public function afterAction($action, $result)
{
    return $result;
}

            
afterFilter() public メソッド
public void afterFilter ( $event )
$event yii\base\ActionEvent

                public function afterFilter($event)
{
    $event->result = $this->afterAction($event->action, $event->result);
    $this->owner->off(Controller::EVENT_AFTER_ACTION, [$this, 'afterFilter']);
}

            
afterRestoreResponse() public メソッド (バージョン 2.0.11 から利用可能)

このメソッドは、応答の復元が完了した後(ただし、応答が送信される前)に呼び出されます。

レスポンスが送信される直前の準備を行うために、このメソッドをオーバーライドできます。

public void afterRestoreResponse ( $data )
$data array|null

キャッシュエントリに保存された追加データの配列、またはnull

                public function afterRestoreResponse($data)
{
}

            
attach() public メソッド

定義場所: yii\base\ActionFilter::attach()

ビヘイビアオブジェクトをコンポーネントにアタッチします。

デフォルトの実装では、$ownerプロパティを設定し、events()で宣言されたイベントハンドラーをアタッチします。このメソッドをオーバーライドする場合は、必ず親の実装を呼び出してください。

public void attach ( $owner )
$owner yii\base\Component

このビヘイビアがアタッチされるコンポーネント。

                public function attach($owner)
{
    $this->owner = $owner;
    $owner->on(Controller::EVENT_BEFORE_ACTION, [$this, 'beforeFilter']);
}

            
beforeAction() public メソッド

このメソッドは、アクションが実行される直前(可能なすべてのフィルターの後)に呼び出されます。アクションの直前準備を行うために、このメソッドをオーバーライドできます。

public boolean beforeAction ( $action )
$action yii\base\Action

実行されるアクション。

return boolean

アクションの実行を続行する必要があるかどうか。

                public function beforeAction($action)
{
    if (!$this->enabled) {
        return true;
    }
    $this->cache = Instance::ensure($this->cache, 'yii\caching\CacheInterface');
    if (is_array($this->dependency)) {
        $this->dependency = Yii::createObject($this->dependency);
    }
    $response = Yii::$app->getResponse();
    $data = $this->cache->get($this->calculateCacheKey());
    if (!is_array($data) || !isset($data['cacheVersion']) || $data['cacheVersion'] !== static::PAGE_CACHE_VERSION) {
        $this->view->pushDynamicContent($this);
        ob_start();
        ob_implicit_flush(false);
        $response->on(Response::EVENT_AFTER_SEND, [$this, 'cacheResponse']);
        Yii::debug('Valid page content is not found in the cache.', __METHOD__);
        return true;
    }
    $this->restoreResponse($response, $data);
    Yii::debug('Valid page content is found in the cache.', __METHOD__);
    return false;
}

            
beforeCacheResponse() public メソッド (バージョン 2.0.11 から利用可能)

このメソッドは、応答のキャッシュが開始される直前に呼び出されます。

falseを返すことでキャッシュをキャンセルしたり、trueの代わりに配列を返すことでキャッシュエントリに追加データを保存したりするために、このメソッドをオーバーライドできます。

public boolean|array beforeCacheResponse ( )
return boolean|array

キャッシュするかどうか。追加データを保存する場合は、trueの代わりに配列を返します。

                public function beforeCacheResponse()
{
    return true;
}

            
beforeFilter() public メソッド
public void beforeFilter ( $event )
$event yii\base\ActionEvent

                public function beforeFilter($event)
{
    if (!$this->isActive($event->action)) {
        return;
    }
    $event->isValid = $this->beforeAction($event->action);
    if ($event->isValid) {
        // call afterFilter only if beforeFilter succeeds
        // beforeFilter and afterFilter should be properly nested
        $this->owner->on(Controller::EVENT_AFTER_ACTION, [$this, 'afterFilter'], null, false);
    } else {
        $event->handled = true;
    }
}

            
cacheResponse() public メソッド (バージョン 2.0.3 から利用可能)

応答プロパティをキャッシュします。

public void cacheResponse ( )

                public function cacheResponse()
{
    $this->view->popDynamicContent();
    $beforeCacheResponseResult = $this->beforeCacheResponse();
    if ($beforeCacheResponseResult === false) {
        echo $this->updateDynamicContent(ob_get_clean(), $this->getDynamicPlaceholders());
        return;
    }
    $response = Yii::$app->getResponse();
    $response->off(Response::EVENT_AFTER_SEND, [$this, 'cacheResponse']);
    $data = [
        'cacheVersion' => static::PAGE_CACHE_VERSION,
        'cacheData' => is_array($beforeCacheResponseResult) ? $beforeCacheResponseResult : null,
        'content' => ob_get_clean(),
    ];
    if ($data['content'] === false || $data['content'] === '') {
        return;
    }
    $data['dynamicPlaceholders'] = $this->getDynamicPlaceholders();
    foreach (['format', 'version', 'statusCode', 'statusText'] as $name) {
        $data[$name] = $response->{$name};
    }
    $this->insertResponseHeaderCollectionIntoData($response, $data);
    $this->insertResponseCookieCollectionIntoData($response, $data);
    $this->cache->set($this->calculateCacheKey(), $data, $this->duration, $this->dependency);
    $data['content'] = $this->updateDynamicContent($data['content'], $this->getDynamicPlaceholders());
    echo $data['content'];
}

            
calculateCacheKey() protected メソッド (バージョン 2.0.3 から利用可能)

protected array calculateCacheKey ( )
return array

レスポンスのプロパティをキャッシュするために使用されるキー。

                protected function calculateCacheKey()
{
    $key = [__CLASS__];
    if ($this->varyByRoute) {
        $key[] = Yii::$app->requestedRoute;
    }
    if ($this->variations instanceof Closure) {
        $variations = call_user_func($this->variations, $this);
    } else {
        $variations = $this->variations;
    }
    return array_merge($key, (array) $variations);
}

            
canGetProperty() public メソッド

定義場所: yii\base\BaseObject::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティが読み取り可能になるのは、次のいずれかの場合です。

  • クラスが指定された名前に関連付けられた getter メソッドを持っている場合 (この場合、プロパティ名は大小文字を区別しません)。
  • クラスが指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。

参照: canSetProperty()

public boolean canGetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが読み取り可能かどうか

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public メソッド

定義場所: yii\base\BaseObject::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティが書き込み可能になるのは、次のいずれかの場合です。

  • クラスが指定された名前に関連付けられた setter メソッドを持っている場合 (この場合、プロパティ名は大小文字を区別しません)。
  • クラスが指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。

参照: canGetProperty()

public boolean canSetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが書き込み可能かどうか

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static メソッド
2.0.14 から非推奨。PHP >=5.5 では ::class を代わりに使用してください。

定義場所: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
detach() public メソッド

定義場所: yii\base\ActionFilter::detach()

ビヘイビアオブジェクトをコンポーネントからデタッチします。

デフォルトの実装では、$owner プロパティを unset し、events() で宣言されたイベントハンドラをデタッチします。このメソッドをオーバーライドする場合は、必ず親の実装を呼び出してください。

public void detach ( )

                public function detach()
{
    if ($this->owner) {
        $this->owner->off(Controller::EVENT_BEFORE_ACTION, [$this, 'beforeFilter']);
        $this->owner->off(Controller::EVENT_AFTER_ACTION, [$this, 'afterFilter']);
        $this->owner = null;
    }
}

            
events() public メソッド

定義場所: yii\base\Behavior::events()

$ownerのイベントのイベントハンドラーを宣言します。

子クラスは、このメソッドをオーバーライドして、$owner コンポーネントのイベントに添付する PHP コールバックを宣言することができます。

コールバックは、ビヘイビアがオーナーにアタッチされたときに $owner のイベントにアタッチされ、ビヘイビアがコンポーネントからデタッチされたときにイベントからデタッチされます。

コールバックには次のいずれかを指定できます。

  • このビヘイビアのメソッド: 'handleClick'[$this, 'handleClick'] と同等。
  • オブジェクトメソッド: [$object, 'handleClick']
  • 静的メソッド: ['Page', 'handleClick']
  • 無名関数: function ($event) { ... }

以下に例を示します。

[
    Model::EVENT_BEFORE_VALIDATE => 'myBeforeValidate',
    Model::EVENT_AFTER_VALIDATE => 'myAfterValidate',
]
public array events ( )
return array

イベント (配列のキー) と対応するイベントハンドラメソッド (配列の値)。

                public function events()
{
    return [];
}

            
getActionId() protected メソッド (バージョン 2.0.7 から利用可能)

定義場所: yii\base\ActionFilter::getActionId()

yii\base\Action::$uniqueIdをモジュールに対する相対IDに変換して、アクションIDを返します。

protected string getActionId ( $action )
$action yii\base\Action

                protected function getActionId($action)
{
    if ($this->owner instanceof Module) {
        $mid = $this->owner->getUniqueId();
        $id = $action->getUniqueId();
        if ($mid !== '' && strpos($id, $mid) === 0) {
            $id = substr($id, strlen($mid) + 1);
        }
    } else {
        $id = $action->id;
    }
    return $id;
}

            
getDynamicPlaceholders() public メソッド

定義場所: yii\base\DynamicContentAwareTrait::getDynamicPlaceholders()

動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツキャッシング機能を実装するために内部的に使用されます。

public array getDynamicPlaceholders ( )
return array

プレースホルダーのリスト。

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

            
getView() public メソッド

public void getView ( )

                public function getView()
{
    return $this->view;
}

            
hasMethod() public メソッド

定義場所: yii\base\BaseObject::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

デフォルトの実装は、PHP 関数 method_exists() を呼び出すことです。PHP マジックメソッド __call() を実装した場合は、このメソッドをオーバーライドすることができます。

public boolean hasMethod ( $name )
$name string

メソッド名

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public メソッド

定義場所: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

プロパティが定義されているのは、次のいずれかの場合です。

  • クラスが指定された名前に関連付けられた getter または setter メソッドを持っている場合 (この場合、プロパティ名は大小文字を区別しません)。
  • クラスが指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。

参照:

public boolean hasProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public メソッド

オブジェクトを初期化します。

このメソッドは、与えられた構成でオブジェクトが初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
    parent::init();
    if ($this->view === null) {
        $this->view = Yii::$app->getView();
    }
}

            
isActive() protected メソッド

定義元: yii\base\ActionFilter::isActive()

指定されたアクションに対してフィルターがアクティブかどうかを示す値を返します。

protected boolean isActive ( $action )
$action yii\base\Action

フィルタリングされるアクション

return boolean

指定されたアクションに対してフィルタがアクティブかどうか。

                protected function isActive($action)
{
    $id = $this->getActionId($action);
    if (empty($this->only)) {
        $onlyMatch = true;
    } else {
        $onlyMatch = false;
        foreach ($this->only as $pattern) {
            if (StringHelper::matchWildcard($pattern, $id)) {
                $onlyMatch = true;
                break;
            }
        }
    }
    $exceptMatch = false;
    foreach ($this->except as $pattern) {
        if (StringHelper::matchWildcard($pattern, $id)) {
            $exceptMatch = true;
            break;
        }
    }
    return !$exceptMatch && $onlyMatch;
}

            
restoreResponse() protected メソッド (バージョン 2.0.3 から利用可能)

指定されたデータから応答プロパティを復元します。

protected void restoreResponse ( $response, $data )
$response yii\web\Response

復元されるレスポンス。

$data array

レスポンスのプロパティデータ。

                protected function restoreResponse($response, $data)
{
    foreach (['format', 'version', 'statusCode', 'statusText', 'content'] as $name) {
        $response->{$name} = $data[$name];
    }
    foreach (['headers', 'cookies'] as $name) {
        if (isset($data[$name]) && is_array($data[$name])) {
            $response->{$name}->fromArray(array_merge($data[$name], $response->{$name}->toArray()));
        }
    }
    if (!empty($data['dynamicPlaceholders']) && is_array($data['dynamicPlaceholders'])) {
        $response->content = $this->updateDynamicContent($response->content, $data['dynamicPlaceholders'], true);
    }
    $this->afterRestoreResponse(isset($data['cacheData']) ? $data['cacheData'] : null);
}

            
setDynamicPlaceholders() public メソッド

定義元: yii\base\DynamicContentAwareTrait::setDynamicPlaceholders()

動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツキャッシング機能を実装するために内部的に使用されます。

public void setDynamicPlaceholders ( $placeholders )
$placeholders array

プレースホルダーのリスト。

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

            
updateDynamicContent() protected メソッド

定義元: yii\base\DynamicContentAwareTrait::updateDynamicContent()

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