0 フォロワー

クラス yii\caching\ArrayCache

継承yii\caching\ArrayCache » yii\caching\Cache » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\caching\CacheInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/caching/ArrayCache.php

ArrayCacheは、値を配列に格納することで、現在のリクエストのみのキャッシュを提供します。

ArrayCacheがサポートする一般的なキャッシュ操作については、yii\caching\Cacheを参照してください。

yii\caching\Cacheとは異なり、ArrayCacheでは、set()add()multiSet()、およびmultiAdd()のexpireパラメータを浮動小数点数にすることができ、ミリ秒単位で時間を指定できます(例:0.1は100ミリ秒)。

ArrayCacheのパフォーマンスを向上させるために、$serializerfalseに設定することで、保存されたデータのシリアル化を無効にすることができます。

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

公開プロパティ

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

プロパティ 説明 定義元
$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\ArrayCache
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\ArrayCache
addValues() 複数のキーと値のペアをキャッシュに追加します。 yii\caching\Cache
deleteValue() 指定されたキーを持つ値をキャッシュから削除します。このメソッドは、子クラスが実際のキャッシュストレージからデータを削除するために実装する必要があります。 yii\caching\ArrayCache
flushValues() キャッシュからすべての値を削除します。 yii\caching\ArrayCache
getValue() 指定されたキーでキャッシュから値を取得します。 yii\caching\ArrayCache
getValues() 指定されたキーでキャッシュから複数の値を取得します。 yii\caching\Cache
setValue() キーで識別される値をキャッシュに保存します。 yii\caching\ArrayCache
setValues() 複数のキーと値のペアをキャッシュに保存します。 yii\caching\Cache

メソッドの詳細

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

__call() 公開メソッド

定義元: 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()

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

このメソッドは、次の順序でチェックし、それに応じて動作します。

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

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

__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を返します

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

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"という名前のビヘイビアをアタッチします
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定します

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

__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に設定します

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

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

定義元: yii\caching\Cache::add()

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

キャッシュにキーがすでに含まれている場合、何も実行されません。

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

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

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

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

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

$value mixed

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

$duration integer

キャッシュされた値が期限切れになるまでの秒数。0は期限切れがないことを意味します。

戻り値 boolean

値がキャッシュに正常に保存された場合はtrue、それ以外の場合はfalse

                protected function addValue($key, $value, $duration)
{
    if (isset($this->_cache[$key]) && ($this->_cache[$key][1] === 0 || $this->_cache[$key][1] > microtime(true))) {
        return false;
    }
    $this->_cache[$key] = [$value, $duration === 0 ? 0 : microtime(true) + $duration];
    return true;
}

            
addValues() protected メソッド

定義元: yii\caching\Cache::addValues()

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

デフォルトの実装では、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 メソッド

定義: yii\caching\Cache::buildKey()

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

指定されたキーが、英数字のみで構成され、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 メソッド

定義: yii\caching\Cache::delete()

指定されたキーを持つ値をキャッシュから削除します。

public boolean delete ( $key )
$key mixed

キャッシュから削除する値を識別するキー。これは、単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。

戻り値 boolean

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

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

            
deleteValue() protected メソッド

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

protected boolean deleteValue ( $key )
$key string

削除する値のキー

戻り値 boolean

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

                protected function deleteValue($key)
{
    unset($this->_cache[$key]);
    return true;
}

            
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);
    return isset($this->_cache[$key]) && ($this->_cache[$key][1] === 0 || $this->_cache[$key][1] > microtime(true));
}

            
flush() public メソッド

定義元: yii\caching\Cache::flush()

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

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

public boolean flush ( )
戻り値 boolean

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

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

            
flushValues() protected メソッド

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

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

protected boolean flushValues ( )
戻り値 boolean

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

                protected function flushValues()
{
    $this->_cache = [];
    return true;
}

            
get() public メソッド

定義元: yii\caching\Cache::get()

指定されたキーでキャッシュから値を取得します。

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 以降で利用可能)

定義元: yii\caching\Cache::getOrSet()

このメソッドは、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() を介してフェッチされると、キャッシュ内の対応する値が無効になります。$serializerfalse の場合、このパラメーターは無視されます。

戻り値 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 メソッド

指定されたキーでキャッシュから値を取得します。

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

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

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

戻り値 mixed|false

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

                protected function getValue($key)
{
    if (isset($this->_cache[$key]) && ($this->_cache[$key][1] === 0 || $this->_cache[$key][1] > microtime(true))) {
        return $this->_cache[$key][0];
    }
    return false;
}

            
getValues() protected メソッド

定義元: yii\caching\Cache::getValues()

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

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

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

定義元: yii\caching\Cache::init()

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

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

public void init ( )

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

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

定義元: yii\caching\Cache::madd()

複数のアイテムをキャッシュに保存します。各アイテムには、キーで識別される値が含まれます。

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

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 で削除されます。

定義元: yii\caching\Cache::mget()

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

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

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

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

戻り値 配列

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

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

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

定義元: yii\caching\Cache::mset()

複数のアイテムをキャッシュに保存します。各アイテムには、キーで識別される値が含まれます。

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

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 以降で利用可能)

定義元: yii\caching\Cache::multiAdd()

複数のアイテムをキャッシュに保存します。各アイテムには、キーで識別される値が含まれます。

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

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 以降で利用可能)

定義元: yii\caching\Cache::multiGet()

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

一部のキャッシュ (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 以降で利用可能)

定義元: yii\caching\Cache::multiSet()

複数のアイテムをキャッシュに保存します。各アイテムには、キーで識別される値が含まれます。

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

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

定義元: yii\caching\Cache::offsetExists()

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

このメソッドは、インターフェース ArrayAccess によって要求されます。

public boolean offsetExists ( $key )
$key string

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

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

            
offsetGet() public メソッド

定義元: yii\caching\Cache::offsetGet()

指定されたキーでキャッシュから値を取得します。

このメソッドは、インターフェース ArrayAccess によって要求されます。

public mixed offsetGet ( $key )
$key string

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

戻り値 mixed

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

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

            
offsetSet() public メソッド

定義元: yii\caching\Cache::offsetSet()

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

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

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

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

$value mixed

キャッシュする値

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

            
offsetUnset() public メソッド

定義元: yii\caching\Cache::offsetUnset()

指定されたキーを持つ値をキャッシュから削除します。このメソッドは、インターフェース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 メソッド

定義元: yii\caching\Cache::set()

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

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

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

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

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

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

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

$value mixed

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

$duration integer

キャッシュされた値が期限切れになるまでの秒数。0は期限切れがないことを意味します。

戻り値 boolean

値がキャッシュに正常に保存された場合はtrue、それ以外の場合はfalse

                protected function setValue($key, $value, $duration)
{
    $this->_cache[$key] = [$value, $duration === 0 ? 0 : microtime(true) + $duration];
    return true;
}

            
setValues() protected メソッド

定義元: yii\caching\Cache::setValues()

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

デフォルトの実装では、値を 1 つずつ保存するために 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);
}