1 フォロワー

抽象クラス yii\caching\Cache

継承yii\caching\Cache » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurableyii\caching\CacheInterface
サブクラスyii\caching\ApcCacheyii\caching\ArrayCacheyii\caching\DbCacheyii\caching\DummyCacheyii\caching\FileCacheyii\caching\MemCacheyii\caching\WinCacheyii\caching\XCacheyii\caching\ZendDataCache
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/caching/Cache.php

Cache は、様々なキャッシュストレージ実装をサポートするキャッシュクラスの基底クラスです。

データ項目は、set() を呼び出すことでキャッシュに保存でき、後で(同じリクエスト内でも、異なるリクエスト内でも)get() を使用して取得できます。どちらの操作にも、データ項目を識別するキーが必要です。set() を呼び出す際に、有効期限と/または依存関係を指定することもできます。get() を呼び出した時点でデータ項目が期限切れになっているか、依存関係が変更されている場合、キャッシュはデータを取得できません。

キャッシュの一般的な使用方法パターンは以下のとおりです。

$key = 'demo';
$data = $cache->get($key);
if ($data === false) {
    // ...generate $data here...
    $cache->set($key, $data, $duration, $dependency);
}

Cache は ArrayAccess インターフェースを実装しているため、配列のように使用できます。例えば、

$cache['foo'] = 'some data';
echo $cache['foo'];

派生クラスは、実際のキャッシュストレージ操作を行う次のメソッドを実装する必要があります。

  • getValue():キー(存在する場合)を使用してキャッシュから値を取得します。
  • setValue():キーを使用して値をキャッシュに保存します。
  • addValue():キャッシュにそのキーがまだ存在しない場合のみ、値を保存します。
  • deleteValue():指定したキーの値をキャッシュから削除します。
  • flushValues():キャッシュからすべての値を削除します。

Cache の詳細と使用方法については、キャッシングに関するガイド記事を参照してください。

公開プロパティ

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

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされているビヘイビアのリスト。 yii\base\Component
$defaultDuration integer キャッシュエントリの有効期限までの秒数。 yii\caching\Cache
$keyPrefix string すべてのキャッシュキーの前に付加される文字列。これにより、キャッシュストレージ全体でグローバルに一意になります。 yii\caching\Cache
$serializer array|null|false キャッシュされたデータをシリアライズおよびアンシリアライズするために使用される関数。 yii\caching\Cache

公開メソッド

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

メソッド 説明 定義元
__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
add() キャッシュにキーで識別される値を保存します(キャッシュにそのキーが含まれていない場合)。 yii\caching\Cache
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが動作するビヘイビアのリストを返します。 yii\base\Component
buildKey() 指定されたキーから正規化されたキャッシュキーを構築します。 yii\caching\Cache
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
delete() 指定したキーの値をキャッシュから削除します。 yii\caching\Cache
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
exists() 指定したキーがキャッシュに存在するかどうかをチェックします。 yii\caching\Cache
flush() キャッシュからすべての値を削除します。 yii\caching\Cache
get() 指定したキーを使用してキャッシュから値を取得します。 yii\caching\Cache
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getOrSet() set()メソッドとget()メソッドを組み合わせたメソッドで、$keyで識別される値を取得するか、$keyに対してキャッシュが利用できない場合は$callableの実行結果を保存します。 yii\caching\Cache
hasEventHandlers() 指定されたイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\caching\Cache
madd() 複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。 yii\caching\Cache
mget() 指定されたキーを使用してキャッシュから複数の値を取得します。 yii\caching\Cache
mset() 複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。 yii\caching\Cache
multiAdd() 複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。 yii\caching\Cache
multiGet() 指定されたキーを使用してキャッシュから複数の値を取得します。 yii\caching\Cache
multiSet() 複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。 yii\caching\Cache
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
offsetExists() 指定したキーを持つキャッシュエントリがあるかどうかを返します。 yii\caching\Cache
offsetGet() 指定したキーを使用してキャッシュから値を取得します。 yii\caching\Cache
offsetSet() キーで識別される値をキャッシュに保存します。 yii\caching\Cache
offsetUnset() 指定したキーの値をキャッシュから削除します。このメソッドは、ArrayAccessインターフェースで必須です。 yii\caching\Cache
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
set() キーで識別される値をキャッシュに保存します。 yii\caching\Cache
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

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

メソッド 説明 定義元
addValue() キャッシュにキーで識別される値を保存します(キャッシュにそのキーが含まれていない場合)。 yii\caching\Cache
addValues() 複数のキーと値のペアをキャッシュに追加します。 yii\caching\Cache
deleteValue() 指定したキーの値をキャッシュから削除します。このメソッドは、子クラスが実際のキャッシュストレージからデータを削除するために実装する必要があります。 yii\caching\Cache
flushValues() キャッシュからすべての値を削除します。 yii\caching\Cache
getValue() 指定したキーを使用してキャッシュから値を取得します。 yii\caching\Cache
getValues() 指定されたキーを使用してキャッシュから複数の値を取得します。 yii\caching\Cache
setValue() キーで識別される値をキャッシュに保存します。 yii\caching\Cache
setValues() 複数のキーと値のペアをキャッシュに保存します。 yii\caching\Cache

プロパティの詳細

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

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

キャッシュエントリが期限切れになるまでのデフォルトの秒数。デフォルト値は0で、これは無限大を意味します。この値は、期間が明示的に指定されていない場合、set()によって使用されます。

$keyPrefix public プロパティ

すべてのキャッシュキーの前に付加される文字列で、キャッシュストレージ全体でグローバルに一意になります。異なるアプリケーションで同じキャッシュストレージを使用する場合、各アプリケーションに対して一意のキャッシュキープレフィックスを設定することをお勧めします。

相互運用性を確保するために、英数字のみを使用する必要があります。

public string $keyPrefix null
$serializer public プロパティ

キャッシュされたデータをシリアル化および逆シリアル化するために使用される関数。デフォルトはnullで、デフォルトのPHPのserialize()関数とunserialize()関数の使用を意味します。より効率的なシリアライザ(例:igbinary)を使用する場合は、このプロパティを2要素の配列で設定できます。最初の要素はシリアル化関数、2番目の要素は逆シリアル化関数を指定します。このプロパティをfalseに設定すると、データはシリアル化または逆シリアル化なしで、基盤となるキャッシュコンポーネントに直接送受信されます。キャッシュ依存関係を使用している場合は、シリアル化をオフにしないでください。これはデータのシリアル化に依存しているためです。また、一部のキャッシュの実装では、文字列タイプ以外のデータを正しく保存および取得できない場合があります。

public array|null|false $serializer null

メソッドの詳細

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

__call() public メソッド

定義先: yii\base\Component::__call()

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

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

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

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

メソッド名

$params 配列

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 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 メソッド

定義先: yii\base\Component::__clone()

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

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

public void __clone ( )

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

            
__construct() public メソッド

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

コンストラクタ。

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

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

このメソッドが子クラスでオーバーライドされている場合、推奨されるのは

  • コンストラクタの最後の引数がここにあるような設定配列、$configであることです。
  • コンストラクタの最後に親の実装を呼び出してください。
public void __construct ( $config = [] )
$config 配列

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

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

            
__get() public メソッド

定義先: yii\base\Component::__get()

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

このメソッドは、以下の順序で確認し、それに応じて動作します。

  • ゲッターによって定義されたプロパティ:ゲッターの結果を返します。
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返します。

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

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

public mixed __get ( $name )
$name string

プロパティ名

戻り値 mixed

プロパティ値またはビヘイビアのプロパティの値

例外 yii\base\UnknownPropertyException

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

例外 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 メソッド

定義先: yii\base\Component::__isset()

プロパティが設定されているかどうか(つまり、定義されていてnullでないかどうか)をチェックします。

このメソッドは、以下の順序で確認し、それに応じて動作します。

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

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

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

public boolean __isset ( $name )
$name string

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

戻り値 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()

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

このメソッドは、以下の順序で確認し、それに応じて動作します。

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

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

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

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

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

$value mixed

プロパティ値

例外 yii\base\UnknownPropertyException

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

例外 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に設定します。

このメソッドは、以下の順序で確認し、それに応じて動作します。

  • セッターで定義されたプロパティ: プロパティの値をnullに設定します。
  • ビヘイビアのプロパティ: プロパティの値をnullに設定します。

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

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

public void __unset ( $name )
$name string

プロパティ名

例外 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);
}

            
add() publicメソッド

キャッシュにキーで識別される値を保存します(キャッシュにそのキーが含まれていない場合)。

キャッシュに既にキーが存在する場合は、何も行われません。

public boolean add ( $key, $value, $duration 0, $dependency null )
$key mixed

キャッシュする値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

$value mixed

キャッシュする値

$duration integer

キャッシュされた値の有効期限(秒単位)。0は期限切れにならないことを意味します。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get() を介してフェッチされた際に、キャッシュ内の対応する値が無効になります。$serializer がfalseの場合、このパラメータは無視されます。

戻り値 boolean

値がキャッシュに正常に保存されたかどうか

                public function add($key, $value, $duration = 0, $dependency = null)
{
    if ($dependency !== null && $this->serializer !== false) {
        $dependency->evaluateDependency($this);
    }
    if ($this->serializer === null) {
        $value = serialize([$value, $dependency]);
    } elseif ($this->serializer !== false) {
        $value = call_user_func($this->serializer[0], [$value, $dependency]);
    }
    $key = $this->buildKey($key);
    return $this->addValue($key, $value, $duration);
}

            
addValue() protected abstractメソッド

キャッシュにキーで識別される値を保存します(キャッシュにそのキーが含まれていない場合)。

このメソッドは、子クラスによって実装され、特定のキャッシュストレージにデータを保存する必要があります。

protected abstract boolean addValue ( $key, $value, $duration )
$key string

キャッシュする値を識別するキー

$value mixed

キャッシュする値。ほとんどの場合、文字列です。$serializer を無効にした場合は、他のものになる可能性があります。

$duration integer

キャッシュされた値の有効期限(秒単位)。0は期限切れにならないことを意味します。

戻り値 boolean

値がキャッシュに正常に保存された場合はtrue、そうでない場合はfalse

                abstract protected function addValue($key, $value, $duration);

            
addValues() protectedメソッド

複数のキーと値のペアをキャッシュに追加します。

デフォルトの実装では、addValue() を複数回呼び出して、値を1つずつ追加します。基盤となるキャッシュストレージが複数追加をサポートしている場合、このメソッドをオーバーライドしてその機能を利用する必要があります。

protected array addValues ( $data, $duration )
$data 配列

キーがキャッシュキーに対応し、値が保存される値である配列。

$duration integer

キャッシュされた値の有効期限(秒単位)。0は期限切れにならないことを意味します。

戻り値 配列

失敗したキーの配列

                protected function addValues($data, $duration)
{
    $failedKeys = [];
    foreach ($data as $key => $value) {
        if ($this->addValue($key, $value, $duration) === false) {
            $failedKeys[] = $key;
        }
    }
    return $failedKeys;
}

            
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() に渡されるオブジェクト設定配列。
戻り値 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 配列

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

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

            
behaviors() publicメソッド

定義されている場所: yii\base\Component::behaviors()

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

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

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

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

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

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

public array behaviors ( )
戻り値 配列

ビヘイビアの設定。

                public function behaviors()
{
    return [];
}

            
buildKey() publicメソッド

指定されたキーから正規化されたキャッシュキーを構築します。

指定されたキーが英数字のみを含む文字列であり、32文字以下である場合、$keyPrefix をプレフィックスとして付けてキーが返されます。それ以外の場合は、指定されたキーをシリアライズし、MD5ハッシュを適用し、$keyPrefix をプレフィックスとして付けて正規化されたキーが生成されます。

public string buildKey ( $key )
$key mixed

正規化するキー

戻り値 string

生成されたキャッシュキー

                public function buildKey($key)
{
    if (is_string($key)) {
        $key = ctype_alnum($key) && StringHelper::byteLength($key) <= 32 ? $key : md5($key);
    } else {
        if ($this->_igbinaryAvailable) {
            $serializedKey = igbinary_serialize($key);
        } else {
            $serializedKey = serialize($key);
        }
        $key = md5($serializedKey);
    }
    return $this->keyPrefix . $key;
}

            
canGetProperty() publicメソッド

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

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

プロパティは、以下の条件を満たす場合に読み取ることができます。

  • 指定された名前と関連付けられたゲッターメソッドがクラスに存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • 指定された名前のメンバ変数がクラスに存在する場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の読み取り可能なプロパティが存在する場合($checkBehaviorsがtrueの場合)。

参照: canSetProperty().

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 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()

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

プロパティは、以下の条件を満たす場合に書き込むことができます。

  • 指定された名前と関連付けられたセッターメソッドがクラスに存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • 指定された名前のメンバ変数がクラスに存在する場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の書き込み可能なプロパティが存在する場合($checkBehaviorsがtrueの場合)。

参照: canGetProperty().

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 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 ( )
戻り値 string

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

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

            
delete() publicメソッド

指定したキーの値をキャッシュから削除します。

public boolean delete ( $key )
$key mixed

キャッシュから削除する値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

戻り値 boolean

削除中にエラーが発生しなかった場合

                public function delete($key)
{
    $key = $this->buildKey($key);
    return $this->deleteValue($key);
}

            
deleteValue() protected abstractメソッド

指定したキーの値をキャッシュから削除します。このメソッドは、子クラスが実際のキャッシュストレージからデータを削除するために実装する必要があります。

protected abstract boolean deleteValue ( $key )
$key string

削除する値のキー

戻り値 boolean

削除中にエラーが発生しなかった場合

                abstract protected function deleteValue($key);

            
detachBehavior() publicメソッド

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

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

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

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

ビヘイビアの名前。

戻り値 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);
    }
}

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

            
exists() publicメソッド

指定したキーがキャッシュに存在するかどうかをチェックします。

データが大きい場合、キャッシュから値を取得するよりも高速になる可能性があります。キャッシュがネイティブにこの機能をサポートしていない場合、このメソッドはシミュレートしようとしますが、取得するよりもパフォーマンスが向上することはありません。このメソッドは、関連付けられた依存関係(もしあれば)が変更されたかどうかを確認しないことに注意してください。get() の呼び出しがfalseを返すのに対し、existsはtrueを返す可能性があります。

public boolean exists ( $key )
$key mixed

キャッシュされた値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

戻り値 boolean

キャッシュに値が存在する場合はtrue、値がキャッシュにない場合、期限切れの場合、またはfalse。

                public function exists($key)
{
    $key = $this->buildKey($key);
    $value = $this->getValue($key);
    return $value !== false;
}

            
flush() publicメソッド

キャッシュからすべての値を削除します。

キャッシュが複数のアプリケーションで共有されている場合、この操作を実行する際には注意が必要です。

public boolean flush ( )
戻り値 boolean

フラッシュ操作が成功したかどうか。

                public function flush()
{
    return $this->flushValues();
}

            
flushValues() protected abstractメソッド

キャッシュからすべての値を削除します。

子クラスは、このメソッドを実装してフラッシュ操作を実現できます。

protected abstract boolean flushValues ( )
戻り値 boolean

フラッシュ操作が成功したかどうか。

                abstract protected function flushValues();

            
get() publicメソッド

指定したキーを使用してキャッシュから値を取得します。

public mixed get ( $key )
$key mixed

キャッシュされた値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

戻り値 mixed

キャッシュに格納されている値。値がキャッシュにない場合、期限切れの場合、またはキャッシュされたデータに関連付けられた依存関係が変更された場合はfalse。

                public function get($key)
{
    $key = $this->buildKey($key);
    $value = $this->getValue($key);
    if ($value === false || $this->serializer === false) {
        return $value;
    } elseif ($this->serializer === null) {
        $value = unserialize((string)$value);
    } else {
        $value = call_user_func($this->serializer[1], $value);
    }
    if (is_array($value) && !($value[1] instanceof Dependency && $value[1]->isChanged($this))) {
        return $value[0];
    }
    return false;
}

            
getBehavior() publicメソッド

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

名前付きビヘイビアオブジェクトを返します。

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

ビヘイビア名

戻り値 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 ( )
戻り値 yii\base\Behavior[]

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

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

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

set()メソッドとget()メソッドを組み合わせたメソッドで、$keyで識別される値を取得するか、$keyに対してキャッシュが利用できない場合は$callableの実行結果を保存します。

使用方法例

public function getTopProducts($count = 10) {
    $cache = $this->cache; // Could be Yii::$app->cache
    return $cache->getOrSet(['top-n-products', 'n' => $count], function () use ($count) {
        return Products::find()->mostPopular()->limit($count)->all();
    }, 1000);
}
public mixed getOrSet ( $key, $callable, $duration null, $dependency null )
$key mixed

キャッシュする値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

$callable callable|Closure

キャッシュする値を生成するために使用されるcallableまたはクロージャ。`false`を返す`$callable`を使用する場合は、getOrSet()が非効率的に動作する可能性があることに注意してください。yii\caching\Cache::get()メソッドは、`false`の戻り値を使用して、データ項目がキャッシュに見つからないことを示しているためです。したがって、`false`値のキャッシュは、内部呼び出しの不要な増加につながります。

$duration integer|null

キャッシュの有効期限が切れるまでの秒数(デフォルト)。設定されていない場合、$defaultDurationの値が使用されます。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get()を介して取得されたときに、キャッシュ内の対応する値が無効になります。 $serializerが`false`の場合は、このパラメータは無視されます。

戻り値 mixed

$callable実行の結果

                public function getOrSet($key, $callable, $duration = null, $dependency = null)
{
    if (($value = $this->get($key)) !== false) {
        return $value;
    }
    $value = call_user_func($callable, $this);
    if (!$this->set($key, $value, $duration, $dependency)) {
        Yii::warning('Failed to set cache value for key ' . json_encode($key), __METHOD__);
    }
    return $value;
}

            
getValue() protected abstractメソッド

指定したキーを使用してキャッシュから値を取得します。

このメソッドは、子クラスによって実装され、特定のキャッシュストレージからデータを取得する必要があります。

protected abstract mixed|false getValue ( $key )
$key string

キャッシュされた値を一意に識別するキー

戻り値 mixed|false

キャッシュに保存されている値。値がキャッシュにないか、期限切れの場合はfalse。ほとんどの場合、値は文字列です。$serializerを無効にしている場合は、異なる場合があります。

                abstract protected function getValue($key);

            
getValues() protectedメソッド

指定されたキーを使用してキャッシュから複数の値を取得します。

デフォルトの実装では、getValue()を複数回呼び出して、キャッシュされた値を1つずつ取得します。基になるキャッシュストレージがマルチゲットをサポートしている場合は、この機能を利用するために、このメソッドをオーバーライドする必要があります。

protected array getValues ( $keys )
$keys 配列

キャッシュされた値を識別するキーのリスト

戻り値 配列

キーによってインデックスされたキャッシュされた値のリスト

                protected function getValues($keys)
{
    $results = [];
    foreach ($keys as $key) {
        $results[$key] = $this->getValue($key);
    }
    return $results;
}

            
hasEventHandlers() publicメソッド

定義されている場所: yii\base\Component::hasEventHandlers()

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

public boolean hasEventHandlers ( $name )
$name string

イベント名

戻り値 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

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

戻り値 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()

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

プロパティは、以下の場合に定義されています。

  • クラスが指定された名前と関連付けられたゲッターまたはセッターメソッドを持っている場合(この場合、プロパティ名はケースインセンシティブです)。
  • 指定された名前のメンバ変数がクラスに存在する場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアが指定された名前のプロパティを持っている場合(`$checkBehaviors`がtrueの場合)。

参照

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 boolean

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

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

            
init() publicメソッド

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

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

public void init ( )

                public function init()
{
    parent::init();
    $this->_igbinaryAvailable = \extension_loaded('igbinary');
}

            
madd() publicメソッド
非推奨 このメソッドはmultiAdd()のエイリアスであり、2.1.0で削除されます。

複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。

キャッシュに既にそのようなキーが含まれている場合、既存の値と有効期限は保持されます。

public array madd ( $items, $duration 0, $dependency null )
$items 配列

キャッシュするアイテム(キーと値のペア)。

$duration integer

キャッシュされた値の有効期限が切れるまでの秒数(デフォルト)。0は期限切れにならないことを意味します。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get()を介して取得されたときに、キャッシュ内の対応する値が無効になります。 $serializerがfalseの場合は、このパラメータは無視されます。

戻り値 配列

失敗したキーの配列

                public function madd($items, $duration = 0, $dependency = null)
{
    return $this->multiAdd($items, $duration, $dependency);
}

            
mget() publicメソッド
非推奨 このメソッドはmultiGet()のエイリアスであり、2.1.0で削除されます。

指定されたキーを使用してキャッシュから複数の値を取得します。

一部のキャッシュ(memcache、apcなど)では、複数のキャッシュされた値を同時に取得できます。これにより、パフォーマンスが向上する場合があります。キャッシュがネイティブにこの機能をサポートしていない場合、このメソッドはそれをシミュレートしようとします。

public array mget ( $keys )
$keys string[]

キャッシュされた値を識別する文字列キーのリスト

戻り値 配列

指定されたキーに対応するキャッシュされた値のリスト。配列は(キー、値)のペアで返されます。値がキャッシュされていないか、期限切れの場合は、対応する配列の値はfalseになります。

                public function mget($keys)
{
    return $this->multiGet($keys);
}

            
mset() publicメソッド
非推奨 このメソッドはmultiSet()のエイリアスであり、2.1.0で削除されます。

複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。

キャッシュに既にそのようなキーが含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。

public array mset ( $items, $duration null, $dependency null )
$items 配列

キャッシュするアイテム(キーと値のペア)。

$duration integer|null

キャッシュが期限切れになるまでの秒数(デフォルト値)。設定されていない場合、デフォルトの$defaultDuration値が使用されます。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get()を介して取得されたときに、キャッシュ内の対応する値が無効になります。 $serializerがfalseの場合は、このパラメータは無視されます。

戻り値 配列

失敗したキーの配列

                public function mset($items, $duration = null, $dependency = null)
{
    return $this->multiSet($items, $duration, $dependency);
}

            
multiAdd() publicメソッド (バージョン2.0.7以降で使用可能)

複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。

キャッシュに既にそのようなキーが含まれている場合、既存の値と有効期限は保持されます。

public array multiAdd ( $items, $duration 0, $dependency null )
$items 配列

キャッシュするアイテム(キーと値のペア)。

$duration integer

キャッシュされた値の有効期限が切れるまでの秒数(デフォルト)。0は期限切れにならないことを意味します。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get()を介して取得されたときに、キャッシュ内の対応する値が無効になります。 $serializerがfalseの場合は、このパラメータは無視されます。

戻り値 配列

失敗したキーの配列

                public function multiAdd($items, $duration = 0, $dependency = null)
{
    $data = $this->prepareCacheData($items, $dependency);
    return $this->addValues($data, $duration);
}

            
multiGet() publicメソッド (バージョン2.0.7以降で使用可能)

指定されたキーを使用してキャッシュから複数の値を取得します。

一部のキャッシュ(memcache、apcなど)では、複数のキャッシュされた値を同時に取得できます。これにより、パフォーマンスが向上する場合があります。キャッシュがネイティブにこの機能をサポートしていない場合、このメソッドはそれをシミュレートしようとします。

public array multiGet ( $keys )
$keys string[]

キャッシュされた値を識別する文字列キーのリスト

戻り値 配列

指定されたキーに対応するキャッシュされた値のリスト。配列は(キー、値)のペアで返されます。値がキャッシュされていないか、期限切れの場合は、対応する配列の値はfalseになります。

                public function multiGet($keys)
{
    $keyMap = [];
    foreach ($keys as $key) {
        $keyMap[$key] = $this->buildKey($key);
    }
    $values = $this->getValues(array_values($keyMap));
    $results = [];
    foreach ($keyMap as $key => $newKey) {
        $results[$key] = false;
        if (isset($values[$newKey])) {
            if ($this->serializer === false) {
                $results[$key] = $values[$newKey];
            } else {
                $value = $this->serializer === null ? unserialize($values[$newKey])
                    : call_user_func($this->serializer[1], $values[$newKey]);
                if (is_array($value) && !($value[1] instanceof Dependency && $value[1]->isChanged($this))) {
                    $results[$key] = $value[0];
                }
            }
        }
    }
    return $results;
}

            
multiSet() publicメソッド (バージョン2.0.7以降で使用可能)

複数の項目をキャッシュに保存します。各項目には、キーで識別される値が含まれています。

キャッシュに既にそのようなキーが含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。

public array multiSet ( $items, $duration null, $dependency null )
$items 配列

キャッシュするアイテム(キーと値のペア)。

$duration integer|null

キャッシュが期限切れになるまでの秒数(デフォルト値)。設定されていない場合、デフォルトの$defaultDuration値が使用されます。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get()を介して取得されたときに、キャッシュ内の対応する値が無効になります。 $serializerがfalseの場合は、このパラメータは無視されます。

戻り値 配列

失敗したキーの配列

                public function multiSet($items, $duration = null, $dependency = null)
{
    if ($duration === null) {
        $duration = $this->defaultDuration;
    }
    $data = $this->prepareCacheData($items, $dependency);
    return $this->setValues($data, $duration);
}

            
off() publicメソッド

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

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

このメソッドはon()の反対の動作をします。

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

参照: on().

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

イベント名

$handler callable|null

削除するイベントハンドラ。nullの場合、指定されたイベントにアタッチされているすべてのハンドラが削除されます。

戻り値 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;
}

            
offsetExists() publicメソッド

指定したキーを持つキャッシュエントリがあるかどうかを返します。

このメソッドは、インターフェースArrayAccessで必要です。

public boolean offsetExists ( $key )
$key string

キャッシュされた値を識別するキー

                #[\ReturnTypeWillChange]
public function offsetExists($key)
{
    return $this->get($key) !== false;
}

            
offsetGet() publicメソッド

指定したキーを使用してキャッシュから値を取得します。

このメソッドは、インターフェースArrayAccessで必要です。

public mixed offsetGet ( $key )
$key string

キャッシュされた値を識別するキー

戻り値 mixed

キャッシュに保存されている値。値がキャッシュにないか、期限切れの場合はfalse。

                #[\ReturnTypeWillChange]
public function offsetGet($key)
{
    return $this->get($key);
}

            
offsetSet() publicメソッド

キーで識別される値をキャッシュに保存します。

キャッシュに既にそのようなキーが含まれている場合、既存の値は新しい値で置き換えられます。有効期限と依存関係を追加するには、set()メソッドを使用します。このメソッドは、インターフェースArrayAccessで必要です。

public void offsetSet ( $key, $value )
$key string

キャッシュする値を識別するキー

$value mixed

キャッシュする値

                #[\ReturnTypeWillChange]
public function offsetSet($key, $value)
{
    $this->set($key, $value);
}

            
offsetUnset() publicメソッド

指定したキーの値をキャッシュから削除します。このメソッドは、ArrayAccessインターフェースで必須です。

public void offsetUnset ( $key )
$key string

削除する値のキー

                #[\ReturnTypeWillChange]
public function offsetUnset($key)
{
    $this->delete($key);
}

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

            
set() publicメソッド

キーで識別される値をキャッシュに保存します。

キャッシュに既にそのようなキーが含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。

public boolean set ( $key, $value, $duration null, $dependency null )
$key mixed

キャッシュする値を識別するキー。単純な文字列または、キーを表す要素からなる複雑なデータ構造にすることができます。

$value mixed

キャッシュする値

$duration integer|null

キャッシュが期限切れになるまでの秒数(デフォルト値)。設定されていない場合、デフォルトの$defaultDuration値が使用されます。

$dependency yii\caching\Dependency|null

キャッシュされたアイテムの依存関係。依存関係が変更されると、get() を介してフェッチされた際に、キャッシュ内の対応する値が無効になります。$serializer がfalseの場合、このパラメータは無視されます。

戻り値 boolean

値がキャッシュに正常に保存されたかどうか

                public function set($key, $value, $duration = null, $dependency = null)
{
    if ($duration === null) {
        $duration = $this->defaultDuration;
    }
    if ($dependency !== null && $this->serializer !== false) {
        $dependency->evaluateDependency($this);
    }
    if ($this->serializer === null) {
        $value = serialize([$value, $dependency]);
    } elseif ($this->serializer !== false) {
        $value = call_user_func($this->serializer[0], [$value, $dependency]);
    }
    $key = $this->buildKey($key);
    return $this->setValue($key, $value, $duration);
}

            
setValue() protected abstractメソッド

キーで識別される値をキャッシュに保存します。

このメソッドは、子クラスによって実装され、特定のキャッシュストレージにデータを保存する必要があります。

protected abstract boolean setValue ( $key, $value, $duration )
$key string

キャッシュする値を識別するキー

$value mixed

キャッシュする値。ほとんどの場合、文字列です。$serializer を無効にした場合は、他のものになる可能性があります。

$duration integer

キャッシュされた値の有効期限(秒単位)。0は期限切れにならないことを意味します。

戻り値 boolean

値がキャッシュに正常に保存された場合はtrue、そうでない場合はfalse

                abstract protected function setValue($key, $value, $duration);

            
setValues() protectedメソッド

複数のキーと値のペアをキャッシュに保存します。

デフォルトの実装では、setValue() を複数回呼び出して値を一つずつ保存します。基盤となるキャッシュストレージが複数セットをサポートしている場合、このメソッドをオーバーライドしてその機能を活用する必要があります。

protected array setValues ( $data, $duration )
$data 配列

キーがキャッシュキーに対応し、値が保存された値である配列

$duration integer

キャッシュされた値の有効期限(秒単位)。0は期限切れにならないことを意味します。

戻り値 配列

失敗したキーの配列

                protected function setValues($data, $duration)
{
    $failedKeys = [];
    foreach ($data as $key => $value) {
        if ($this->setValue($key, $value, $duration) === false) {
            $failedKeys[] = $key;
        }
    }
    return $failedKeys;
}

            
trigger() publicメソッド

定義場所: 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);
}