0 フォロワー

クラス yii\widgets\FragmentCache

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

FragmentCache は、ページフラグメントのキャッシュを提供するために yii\base\View によって使用されます。

パブリックプロパティ

継承されたプロパティを隠す

プロパティ タイプ 説明 定義元
$autoIdPrefix string 自動生成されるウィジェットIDのプレフィックス。 yii\base\Widget
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$cache yii\caching\CacheInterface|array|string キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネントID。 yii\widgets\FragmentCache
$cachedContent string|false キャッシュされたコンテンツ。 yii\widgets\FragmentCache
$dependency array|yii\caching\Dependency キャッシュされたコンテンツが依存する依存関係。 yii\widgets\FragmentCache
$duration integer キャッシュ内でデータが有効な状態を維持できる秒数。 yii\widgets\FragmentCache
$dynamicPlaceholders array プレースホルダーのリスト。 yii\base\DynamicContentAwareTrait
$enabled boolean フラグメントキャッシュを有効にするかどうか。 yii\widgets\FragmentCache
$id string|null ウィジェットのID。 yii\base\Widget
$variations string[]|string キャッシュされるコンテンツのバリエーションを引き起こす要因のリスト。 yii\widgets\FragmentCache
$view yii\web\View ビューやビューファイルのレンダリングに使用できるビューオブジェクト。 yii\base\Widget
$viewPath string このウィジェットのビューファイルを含むディレクトリ。 yii\base\Widget

パブリックメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__call() クラスメソッドではない指定されたメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトを複製してオブジェクトが作成された後に呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているか、つまり定義されていて null でないかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティを null に設定します。 yii\base\Component
addDynamicPlaceholder() 動的コンテンツのプレースホルダーを追加します。 yii\base\DynamicContentAwareTrait
afterRun() このメソッドは、ウィジェットの実行直後に呼び出されます。 yii\base\Widget
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeRun() このメソッドは、ウィジェットの実行直前に呼び出されます。 yii\base\Widget
begin() ウィジェットを開始します。 yii\base\Widget
behaviors() このコンポーネントがビヘイビアとして動作する必要があるビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
end() ウィジェットを終了します。 yii\base\Widget
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBehavior() 指定されたビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getCachedContent() キャッシュされたコンテンツが利用可能な場合はそれを返します。 yii\widgets\FragmentCache
getDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツキャッシュ機能を実装するために内部的に使用されます。 yii\base\DynamicContentAwareTrait
getId() ウィジェットのIDを返します。 yii\base\Widget
getViewPath() このウィジェットのビューファイルを含むディレクトリを返します。 yii\base\Widget
hasEventHandlers() 指定されたイベントにアタッチされたハンドラーがあるかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() FragmentCache オブジェクトを初期化します。 yii\widgets\FragmentCache
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
render() ビューをレンダリングします。 yii\base\Widget
renderFile() ビューファイルをレンダリングします。 yii\base\Widget
run() キャッシュされるコンテンツの末尾をマークします。 yii\widgets\FragmentCache
setDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツキャッシュ機能を実装するために内部的に使用されます。 yii\base\DynamicContentAwareTrait
setId() ウィジェットのIDを設定します。 yii\base\Widget
setView() このウィジェットで使用するビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
widget() ウィジェットのインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
calculateKey() キャッシュにコンテンツを格納するために使用される一意のキーを生成します。 yii\widgets\FragmentCache
getView() 動的コンテンツを使用してビューまたはビューファイルをレンダリングするために使用できるビューオブジェクトを返します。 yii\base\DynamicContentAwareTrait
updateDynamicContent() $content 内のプレースホルダーを評価された動的ステートメントの結果で置き換えます。 yii\base\DynamicContentAwareTrait

イベント

継承されたイベントを隠す

イベント タイプ 説明 定義元
EVENT_AFTER_RUN yii\base\WidgetEvent ウィジェットの実行直後に発生するイベント。(バージョン2.0.11以降で利用可能) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent ウィジェットの実行直前に発生するイベント。(バージョン2.0.11以降で利用可能) yii\base\Widget
EVENT_INIT yii\base\Event init()を介してウィジェットが初期化されたときにトリガーされるイベント。(バージョン2.0.11以降で利用可能) yii\base\Widget

プロパティの詳細

継承されたプロパティを隠す

$cache public property

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

$cachedContent public property

キャッシュされたコンテンツ。キャッシュ内に有効なコンテンツが見つからない場合は、falseが返されます。

public string|false $cachedContent null
$dependency public property

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

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

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

$duration public property

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

public integer $duration 60
$enabled public property

フラグメントキャッシュを有効にするかどうか。特定の条件(例:GETリクエストの場合のみフラグメントキャッシュを有効にする)に応じてフラグメントキャッシュのオン/オフを切り替えるために、このプロパティを使用できます。

public boolean $enabled true
$variations public property

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

[
    Yii::$app->language,
]
public string[]|string $variations null

メソッドの詳細

継承されたメソッドを隠す

__call() public method

定義場所: yii\base\Component::__call()

クラスメソッドではない指定されたメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに指定されたメソッドがあるかどうかを確認し、利用可能な場合は実行します。

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

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

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

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

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public method

定義場所: yii\base\Component::__clone()

このメソッドは、既存のオブジェクトを複製してオブジェクトが作成された後に呼び出されます。

古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() public method

定義場所: 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 method

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

コンポーネントプロパティの値を返します。

このメソッドは、次の順序で確認し、それに応じて処理します

  • getterによって定義されたプロパティ:getterの結果を返す
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返す

このメソッドは、$value = $component->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)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (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 method

定義箇所: yii\base\Component::__isset()

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

このメソッドは、次の順序で確認し、それに応じて処理します

  • setterによって定義されたプロパティ: プロパティが設定されているかどうかを返します。
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返します。
  • 存在しないプロパティの場合はfalseを返します。

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

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

public boolean __isset ( $name )
$name string

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

return boolean

指定されたプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() public メソッド

定義箇所: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、次の順序で確認し、それに応じて処理します

  • setterによって定義されたプロパティ: プロパティ値を設定します。
  • "on xyz"形式のイベント: イベント"xyz"にハンドラーをアタッチします。
  • "as xyz"形式のビヘイビア: "xyz"という名前のビヘイビアをアタッチします。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を設定します。

このメソッドを直接呼び出さないでください。これは、$component->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)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() public メソッド

定義箇所: yii\base\Component::__unset()

コンポーネントプロパティを null に設定します。

このメソッドは、次の順序で確認し、それに応じて処理します

  • setterによって定義されたプロパティ: プロパティ値をnullに設定します。
  • ビヘイビアのプロパティ: プロパティ値をnullに設定します。

このメソッドを直接呼び出さないでください。これは、unset($component->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);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or 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;
}

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

定義箇所: yii\base\Widget::afterRun()

このメソッドは、ウィジェットの実行直後に呼び出されます。

このメソッドはEVENT_AFTER_RUNイベントをトリガーします。このメソッドの戻り値は、ウィジェットの戻り値として使用されます。

このメソッドをオーバーライドする場合は、次のようになるようにコードを作成してください。

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

ウィジェットの戻り値。

return mixed

処理されたウィジェットの結果。

                public function afterRun($result)
{
    $event = new WidgetEvent();
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_RUN, $event);
    return $event->result;
}

            
attachBehavior() public メソッド

定義箇所: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、指定された構成に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach()メソッドを呼び出して、ビヘイビアオブジェクトをこのコンポーネントにアタッチします。

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

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの構成。次のいずれかになります。

  • yii\base\Behaviorオブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject()に渡してビヘイビアオブジェクトを作成するオブジェクト構成配列。
return yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() public メソッド

定義箇所: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは名前でインデックス付けされ、yii\base\Behaviorオブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための構成配列である必要があります。

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

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチするビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

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

定義箇所: yii\base\Widget::beforeRun()

このメソッドは、ウィジェットの実行直前に呼び出されます。

このメソッドはEVENT_BEFORE_RUNイベントをトリガーします。このメソッドの戻り値は、ウィジェットの実行を継続するかどうかを決定します。

このメソッドをオーバーライドする場合は、次のように親の実装を必ず呼び出してください。

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the widget
}
public boolean beforeRun ( )
return boolean

ウィジェットの実行を継続するかどうか。

                public function beforeRun()
{
    $event = new WidgetEvent();
    $this->trigger(self::EVENT_BEFORE_RUN, $event);
    return $event->isValid;
}

            
begin() public static メソッド

定義箇所: yii\base\Widget::begin()

ウィジェットを開始します。

このメソッドは、呼び出し元のクラスのインスタンスを作成します。作成されたインスタンスに構成が適用されます。後で対応するend()の呼び出しを行う必要があります。一部のウィジェットは出力バッファリングを使用する可能性があるため、出力バッファのネストを壊さないように、end()の呼び出しは同じビュー内で行う必要があります。

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

public static static begin ( $config = [] )
$config array

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

return yii\base\Widget

新しく作成されたウィジェットインスタンス

                public static function begin($config = [])
{
    $config['class'] = get_called_class();
    /* @var $widget Widget */
    $widget = Yii::createObject($config);
    self::$stack[] = $widget;
    return $widget;
}

            
behaviors() public メソッド

定義箇所: yii\base\Component::behaviors()

このコンポーネントがビヘイビアとして動作する必要があるビヘイビアのリストを返します。

子クラスは、このメソッドをオーバーライドして、ビヘイビアとして動作させたいものを指定できます。

このメソッドの戻り値は、ビヘイビア名でインデックスされたビヘイビアオブジェクトまたは設定の配列である必要があります。ビヘイビア設定は、ビヘイビアクラスを指定する文字列、または次の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスは yii\base\Behavior を継承する必要があることに注意してください。ビヘイビアは、名前付きまたは匿名でアタッチできます。配列のキーとして名前が使用されている場合、この名前を使用して、後で getBehavior() を使用してビヘイビアを取得したり、detachBehavior() を使用してデタッチしたりできます。匿名ビヘイビアは、取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、コンポーネントに自動的に(必要に応じて)アタッチされます。

public array behaviors ( )
return array

ビヘイビア設定。

                public function behaviors()
{
    return [];
}

            
calculateKey() protected メソッド

キャッシュにコンテンツを格納するために使用される一意のキーを生成します。

生成されるキーは、$id$variations の両方に依存します。

protected mixed calculateKey ( )
return mixed

有効なキャッシュキー。

                protected function calculateKey()
{
    return array_merge([__CLASS__, $this->getId()], (array)$this->variations);
}

            
canGetProperty() public メソッド

定義: yii\base\Component::canGetProperty()

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

プロパティは以下の場合に読み取り可能です。

  • クラスが、指定された名前に関連付けられた getter メソッドを持っている場合(この場合、プロパティ名は case-insensitive です)。
  • クラスが、指定された名前のメンバ変数を持っている場合($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の読み取り可能なプロパティを持っている場合($checkBehaviors が true の場合)。

canSetProperty() も参照してください。

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

プロパティを読み取れるかどうか。

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義: yii\base\Component::canSetProperty()

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

プロパティは以下の場合に書き込み可能です。

  • クラスが、指定された名前に関連付けられた setter メソッドを持っている場合(この場合、プロパティ名は case-insensitive です)。
  • クラスが、指定された名前のメンバ変数を持っている場合($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の書き込み可能なプロパティを持っている場合($checkBehaviors が true の場合)。

canGetProperty() も参照してください。

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

プロパティを書き込めるかどうか。

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

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

            
detachBehavior() public メソッド

定義: yii\base\Component::detachBehavior()

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

ビヘイビアの yii\base\Behavior::detach() メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

return yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合は null。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public メソッド

定義: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
end() public static メソッド

定義: yii\base\Widget::end()

ウィジェットを終了します。

ウィジェットのレンダリング結果が直接出力されることに注意してください。

begin() も参照してください。

public static static end ( )
return yii\base\Widget

終了したウィジェットのインスタンス。

throws yii\base\InvalidCallException

begin()end() の呼び出しが適切にネストされていない場合

                public static function end()
{
    if (!empty(self::$stack)) {
        $widget = array_pop(self::$stack);
        $calledClass = get_called_class();
        if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
            $calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
        }
        if (get_class($widget) === $calledClass) {
            /* @var $widget Widget */
            if ($widget->beforeRun()) {
                $result = $widget->run();
                $result = $widget->afterRun($result);
                echo $result;
            }
            return $widget;
        }
        throw new InvalidCallException('Expecting end() of ' . get_class($widget) . ', found ' . get_called_class());
    }
    throw new InvalidCallException('Unexpected ' . get_called_class() . '::end() call. A matching begin() is not found.');
}

            
ensureBehaviors() public メソッド

定義: yii\base\Component::ensureBehaviors()

behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
getBehavior() public メソッド

定義: yii\base\Component::getBehavior()

指定されたビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビア名。

return yii\base\Behavior|null

ビヘイビアオブジェクト。ビヘイビアが存在しない場合は null。

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() public メソッド

定義: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされたすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
return yii\base\Behavior[]

このコンポーネントにアタッチされたビヘイビアのリスト。

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getCachedContent() public メソッド

キャッシュされたコンテンツが利用可能な場合はそれを返します。

public string|false getCachedContent ( )
return string|false

キャッシュされたコンテンツ。キャッシュ内に有効なコンテンツが見つからない場合は、falseが返されます。

                public function getCachedContent()
{
    if ($this->_content !== null) {
        return $this->_content;
    }
    $this->_content = false;
    if (!($this->cache instanceof CacheInterface)) {
        return $this->_content;
    }
    $key = $this->calculateKey();
    $data = $this->cache->get($key);
    if (!is_array($data) || count($data) !== 2) {
        return $this->_content;
    }
    list($this->_content, $placeholders) = $data;
    if (!is_array($placeholders) || count($placeholders) === 0) {
        return $this->_content;
    }
    $this->_content = $this->updateDynamicContent($this->_content, $placeholders, true);
    return $this->_content;
}

            
getDynamicPlaceholders() public メソッド

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

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

public array getDynamicPlaceholders ( )
return array

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

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

            
getId() public メソッド

定義元: yii\base\Widget::getId()

ウィジェットのIDを返します。

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

IDが以前に設定されていない場合に、IDを生成するかどうか

return string|null

ウィジェットのID。

                public function getId($autoGenerate = true)
{
    if ($autoGenerate && $this->_id === null) {
        $this->_id = static::$autoIdPrefix . static::$counter++;
    }
    return $this->_id;
}

            
getView() protected abstract メソッド

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

動的コンテンツを使用してビューまたはビューファイルをレンダリングするために使用できるビューオブジェクトを返します。

protected abstract yii\base\View getView ( )
return yii\base\View

ビューやビューファイルのレンダリングに使用できるビューオブジェクト。

                abstract protected function getView();

            
getViewPath() public メソッド

定義元: yii\base\Widget::getViewPath()

このウィジェットのビューファイルを含むディレクトリを返します。

デフォルトの実装では、ウィジェットのクラスファイルを含むディレクトリの下にある 'views' サブディレクトリを返します。

public string getViewPath ( )
return string

このウィジェットのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    $class = new ReflectionClass($this);
    return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}

            
hasEventHandlers() public メソッド

定義元: yii\base\Component::hasEventHandlers()

指定されたイベントにアタッチされたハンドラーがあるかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

イベントにアタッチされているハンドラーがあるかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() public メソッド

定義元: yii\base\Component::hasMethod()

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

メソッドが定義されているのは次の場合です。

  • クラスが指定された名前のメソッドを持っている場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持っている場合($checkBehaviors が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

return boolean

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

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() public メソッド

定義元: yii\base\Component::hasProperty()

このコンポーネントにプロパティが定義されているかどうかを示す値を返します。

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

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

参考

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

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

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

            
init() public メソッド

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

public void init ( )

                public function init()
{
    parent::init();
    $this->cache = $this->enabled ? Instance::ensure($this->cache, 'yii\caching\CacheInterface') : null;
    if ($this->cache instanceof CacheInterface && $this->getCachedContent() === false) {
        $this->getView()->pushDynamicContent($this);
        ob_start();
        ob_implicit_flush(false);
    }
}

            
off() public メソッド

定義元: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラーをデタッチします。

このメソッドは on() の反対です。

注意: イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラーのみが削除され、このワイルドカードに一致するプレーン名で登録されたハンドラーは残ります。

on() も参照してください。

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラー。null の場合は、名前付きイベントにアタッチされたすべてのハンドラーが削除されます。

return boolean

ハンドラーが見つかってデタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() public メソッド

定義元: yii\base\Component::on()

イベントにイベントハンドラーをアタッチします。

イベントハンドラーは有効な PHP コールバックである必要があります。以下にいくつかの例を示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラーは、次のシグネチャで定義する必要があります。

function ($event)

ここで、$event は、イベントに関連付けられたパラメーターを含む yii\base\Event オブジェクトです。

2.0.14 以降では、ワイルドカードパターンとしてイベント名を指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

off() も参照してください。

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名

$handler callable

イベントハンドラー

$data mixed

イベントがトリガーされた際にイベントハンドラーに渡されるデータ。イベントハンドラーが呼び出されると、このデータはyii\base\Event::$dataを介してアクセスできます。

$append boolean

既存のハンドラーリストの末尾に新しいイベントハンドラーを追加するかどうか。false の場合、新しいハンドラーは既存のハンドラーリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
render() public method

定義元: yii\base\Widget::render()

ビューをレンダリングします。

レンダリングされるビューは、次のいずれかの形式で指定できます。

  • パスエイリアス (例: "@app/views/site/index")
  • アプリケーション内の絶対パス (例: "//site/index"): ビュー名は二重スラッシュで始まります。実際のビューファイルは、アプリケーションのview pathの下で検索されます。
  • モジュール内の絶対パス (例: "/site/index"): ビュー名は単一スラッシュで始まります。実際のビューファイルは、現在アクティブなモジュールのview pathの下で検索されます。
  • 相対パス (例: "index"): 実際のビューファイルは、$viewPathの下で検索されます。

ビュー名にファイル拡張子が含まれていない場合は、デフォルトの拡張子 .php が使用されます。

public string render ( $view, $params = [] )
$view string

ビュー名。

$params array

ビューで使用できるようにする必要があるパラメータ (名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function render($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
renderFile() public method

定義元: yii\base\Widget::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file string

レンダリングされるビューファイル。これはファイルパスまたはパスエイリアスのいずれかになります。

$params array

ビューで使用できるようにする必要があるパラメータ (名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
run() public method

キャッシュされるコンテンツの末尾をマークします。

このメソッドの呼び出し前およびinit()の後に表示されるコンテンツはキャプチャされ、キャッシュに保存されます。有効なコンテンツがキャッシュに既に見つかった場合、このメソッドは何も行いません。

public void run ( )

                public function run()
{
    if (($content = $this->getCachedContent()) !== false) {
        echo $content;
    } elseif ($this->cache instanceof CacheInterface) {
        $this->getView()->popDynamicContent();
        $content = ob_get_clean();
        if ($content === false || $content === '') {
            return;
        }
        if (is_array($this->dependency)) {
            $this->dependency = Yii::createObject($this->dependency);
        }
        $data = [$content, $this->getDynamicPlaceholders()];
        $this->cache->set($this->calculateKey(), $data, $this->duration, $this->dependency);
        echo $this->updateDynamicContent($content, $this->getDynamicPlaceholders());
    }
}

            
setDynamicPlaceholders() public method

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

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

public void setDynamicPlaceholders ( $placeholders )
$placeholders array

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

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

            
setId() public method

定義元: yii\base\Widget::setId()

ウィジェットのIDを設定します。

public void setId ( $value )
$value string

ウィジェットのID。

                public function setId($value)
{
    $this->_id = $value;
}

            
setView() public method

定義元: yii\base\Widget::setView()

このウィジェットで使用するビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View

ビューやビューファイルのレンダリングに使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
trigger() public method

定義元: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドは、イベントの発生を表します。クラスレベルのハンドラーを含む、イベントにアタッチされたすべてのハンドラーを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合は、デフォルトのyii\base\Eventオブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
updateDynamicContent() protected method

定義元: 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;
}

            
widget() public static method

定義元: yii\base\Widget::widget()

ウィジェットのインスタンスを作成して実行します。

このメソッドによってウィジェットのレンダリング結果が返されます。

public static string widget ( $config = [] )
$config array

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

return string

ウィジェットのレンダリング結果。

throws Throwable

                public static function widget($config = [])
{
    ob_start();
    ob_implicit_flush(false);
    try {
        /* @var $widget Widget */
        $config['class'] = get_called_class();
        $widget = Yii::createObject($config);
        $out = '';
        if ($widget->beforeRun()) {
            $result = $widget->run();
            $out = $widget->afterRun($result);
        }
    } catch (\Exception $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    } catch (\Throwable $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    }
    return ob_get_clean() . $out;
}