0 フォロワー

クラス yii\caching\FileCache

継承yii\caching\FileCache » 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/FileCache.php

FileCache は、ファイルを使用するキャッシュコンポーネントを実装します。

キャッシュされる各データ値について、FileCache はそれを別々のファイルに格納します。キャッシュファイルは $cachePath に配置されます。FileCache は、期限切れのキャッシュファイルを削除するために、自動的にガベージコレクションを実行します。

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

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

公開プロパティ

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

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$cacheFileSuffix string キャッシュファイルのサフィックス。 yii\caching\FileCache
$cachePath string キャッシュファイルを格納するディレクトリ。 yii\caching\FileCache
$defaultDuration integer キャッシュエントリが期限切れになるまでの秒数(デフォルト)。 yii\caching\Cache
$dirMode integer 新しく作成されたディレクトリに設定されるパーミッション。 yii\caching\FileCache
$directoryLevel integer キャッシュファイルを格納するサブディレクトリのレベル。 yii\caching\FileCache
$fileMode integer|null 新しく作成されたキャッシュファイルに設定されるパーミッション。 yii\caching\FileCache
$gcProbability integer キャッシュにデータを格納する際に、ガベージコレクション(GC)を実行する確率(百万分率)。 yii\caching\FileCache
$keyPrefix string すべてのキャッシュキーにプレフィックスとして追加される文字列。 yii\caching\FileCache
$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\FileCache
flush() キャッシュからすべての値を削除します。 yii\caching\Cache
gc() 期限切れのキャッシュファイルを削除します。 yii\caching\FileCache
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\FileCache
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\FileCache
addValues() キャッシュに複数のキーバリューペアを追加します。 yii\caching\Cache
deleteValue() 指定されたキーを持つ値をキャッシュから削除します。これは親クラスで宣言されたメソッドの実装です。 yii\caching\FileCache
flushValues() キャッシュからすべての値を削除します。 yii\caching\FileCache
gcRecursive() ディレクトリ配下の期限切れキャッシュファイルを再帰的に削除します。 yii\caching\FileCache
getCacheFile() 正規化されたキャッシュキーからキャッシュファイルのパスを返します。 yii\caching\FileCache
getValue() 指定されたキーでキャッシュから値を取得します。 yii\caching\FileCache
getValues() 指定されたキーでキャッシュから複数の値を取得します。 yii\caching\Cache
setValue() キーで識別される値をキャッシュに格納します。 yii\caching\FileCache
setValues() 複数のキーバリューペアをキャッシュに格納します。 yii\caching\Cache

プロパティの詳細

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

$cacheFileSuffix public property

キャッシュファイルのサフィックス。デフォルトは '.bin' です。

public string $cacheFileSuffix '.bin'
$cachePath public property

キャッシュファイルを保存するディレクトリです。パスエイリアスを使用できます。設定されていない場合、「cache」サブディレクトリがアプリケーションのランタイムパス下に使用されます。

public string $cachePath '@runtime/cache'
$dirMode public property

新しく作成されたディレクトリに設定されるパーミッションです。この値はPHPのchmod()関数で使用されます。umaskは適用されません。デフォルトは0775で、所有者とグループは読み書き可能、他のユーザーは読み取り専用となります。

public integer $dirMode 0775
$directoryLevel public property

キャッシュファイルを保存するサブディレクトリのレベルです。デフォルトは1です。システムに膨大な数のキャッシュファイルがある場合(例:100万個)、より大きな値を使用できます(通常は3より大きくしません)。サブディレクトリを使用するのは、主に、単一のディレクトリにファイルが多すぎてファイルシステムが過負荷にならないようにするためです。

$fileMode public property

新しく作成されたキャッシュファイルに設定されるパーミッションです。この値はPHPのchmod()関数で使用されます。umaskは適用されません。設定されていない場合、パーミッションは現在の環境によって決定されます。

public integer|null $fileMode null
$gcProbability public property

キャッシュにデータを格納するときに、ガベージコレクション(GC)を実行する確率(100万分の1)です。デフォルトは10で、0.001%の確率となります。この数値は0〜1000000の間にする必要があります。値が0の場合、GCはまったく実行されません。

public integer $gcProbability 10
$keyPrefix public property

すべてのキャッシュキーの前に付ける文字列です。異なるアプリケーションで同じ$cachePath下にキャッシュデータを保存する場合、競合を避けるために必要です。

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

public string $keyPrefix ''

メソッドの詳細

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

__call() public method

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

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

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

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

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

メソッド名

$params array

メソッドパラメータ

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

定義位置: 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メソッド

定義位置: 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 string

キャッシュされる値。$serializerを無効にしている場合、他の型はgetValue()で正しく取得できません。

$duration integer

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

戻り値 boolean

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

                protected function addValue($key, $value, $duration)
{
    $cacheFile = $this->getCacheFile($key);
    if (@filemtime($cacheFile) > time()) {
        return false;
    }
    return $this->setValue($key, $value, $duration);
}

            
addValues() protectedメソッド

定義位置: yii\caching\Cache::addValues()

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

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

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

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

$duration integer

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

戻り値 array

失敗したキーの配列

                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 array

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

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

ビヘイビアの設定。

                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)
{
    $cacheFile = $this->getCacheFile($key);
    return @unlink($cacheFile);
}

            
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)
{
    $cacheFile = $this->getCacheFile($this->buildKey($key));
    return @filemtime($cacheFile) > time();
}

            
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->gc(true, false);
    return true;
}

            
gc() publicメソッド

期限切れのキャッシュファイルを削除します。

public void gc ( $force false, $expiredOnly true )
$force boolean

$gcProbabilityに関係なく、ガベージコレクションを強制的に実行するかどうか。デフォルトはfalseで、実際の削除は$gcProbabilityで指定された確率で実行されます。

$expiredOnly boolean

期限切れのキャッシュファイルのみを削除するかどうか。falseの場合、$cachePathの下にあるすべてのキャッシュファイルが削除されます。

                public function gc($force = false, $expiredOnly = true)
{
    if ($force || random_int(0, 1000000) < $this->gcProbability) {
        $this->gcRecursive($this->cachePath, $expiredOnly);
    }
}

            
gcRecursive() protectedメソッド

ディレクトリ配下の期限切れキャッシュファイルを再帰的に削除します。

このメソッドは主にgc()によって使用されます。

protected void gcRecursive ( $path, $expiredOnly )
$path string

期限切れのキャッシュファイルが削除されるディレクトリ。

$expiredOnly boolean

期限切れのキャッシュファイルのみを削除するかどうか。falseの場合、`$path`の下にあるすべてのファイルが削除されます。

                protected function gcRecursive($path, $expiredOnly)
{
    if (($handle = opendir($path)) !== false) {
        while (($file = readdir($handle)) !== false) {
            if (strncmp($file, '.', 1) === 0) {
                continue;
            }
            $fullPath = $path . DIRECTORY_SEPARATOR . $file;
            if (is_dir($fullPath)) {
                $this->gcRecursive($fullPath, $expiredOnly);
                if (!$expiredOnly) {
                    if (!@rmdir($fullPath)) {
                        $error = error_get_last();
                        Yii::warning("Unable to remove directory '{$fullPath}': {$error['message']}", __METHOD__);
                    }
                }
            } elseif (!$expiredOnly || $expiredOnly && @filemtime($fullPath) < time()) {
                if (!@unlink($fullPath)) {
                    $error = error_get_last();
                    Yii::warning("Unable to remove file '{$fullPath}': {$error['message']}", __METHOD__);
                }
            }
        }
        closedir($handle);
    }
}

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

            
getCacheFile() protectedメソッド

正規化されたキャッシュキーからキャッシュファイルのパスを返します。

protected string getCacheFile ( $normalizedKey )
$normalizedKey string

buildKey()メソッドによって正規化されたキャッシュキー。

戻り値 string

キャッシュファイルのパス。

                protected function getCacheFile($normalizedKey)
{
    $cacheKey = $normalizedKey;
    if ($this->keyPrefix !== '') {
        // Remove key prefix to avoid generating constant directory levels
        $lenKeyPrefix = strlen($this->keyPrefix);
        $cacheKey = substr_replace($normalizedKey, '', 0, $lenKeyPrefix);
    }
    $cachePath = $this->cachePath;
    if ($this->directoryLevel > 0) {
        for ($i = 0; $i < $this->directoryLevel; ++$i) {
            if (($subDirectory = substr($cacheKey, $i + $i, 2)) !== false) {
                $cachePath .= DIRECTORY_SEPARATOR . $subDirectory;
            }
        }
    }
    return $cachePath . DIRECTORY_SEPARATOR . $normalizedKey . $this->cacheFileSuffix;
}

            
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 混合型 getOrSet ( $key, $callable, $duration null, $dependency null )
$key mixed

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

$callable callable|クロージャ

キャッシュする値を生成するために使用される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 文字列|false getValue ( $key )
$key string

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

戻り値 文字列|false

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

                protected function getValue($key)
{
    $cacheFile = $this->getCacheFile($key);
    if (@filemtime($cacheFile) > time()) {
        $fp = @fopen($cacheFile, 'r');
        if ($fp !== false) {
            @flock($fp, LOCK_SH);
            $cacheValue = @stream_get_contents($fp);
            @flock($fp, LOCK_UN);
            @fclose($fp);
            return $cacheValue;
        }
    }
    return false;
}

            
getValues() protectedメソッド

定義場所: yii\caching\Cache::getValues()

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

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

protected 配列 getValues ( $keys )
$keys array

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

戻り値 array

キーでインデックスされたキャッシュされた値のリスト

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

            
hasEventHandlers() publicメソッド

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

名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。

public ブール値 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 ブール値 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 ブール値 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->cachePath = Yii::getAlias($this->cachePath);
    if (!is_dir($this->cachePath)) {
        FileHelper::createDirectory($this->cachePath, $this->dirMode, true);
    }
}

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

定義場所: yii\caching\Cache::madd()

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

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

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

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

$duration integer

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

$dependency yii\caching\Dependency|null

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

戻り値 array

失敗したキーの配列

                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 配列 mget ( $keys )
$keys string[]

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

戻り値 array

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

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

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

定義場所: yii\caching\Cache::mset()

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

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

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

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

$duration integer|null

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

$dependency yii\caching\Dependency|null

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

戻り値 array

失敗したキーの配列

                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 array

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

$duration integer

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

$dependency yii\caching\Dependency|null

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

戻り値 array

失敗したキーの配列

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

            
multiGet() public method (version 2.0.7以降で利用可能)

定義場所: yii\caching\Cache::multiGet()

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

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

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

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

戻り値 array

指定されたキーに対応するキャッシュされた値のリスト。配列は(キー、値)ペアで返されます。値がキャッシュされていない場合、または期限切れの場合は、対応する配列の値は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 method (version 2.0.7以降で利用可能)

定義場所: yii\caching\Cache::multiSet()

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

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

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

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

$duration integer|null

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

$dependency yii\caching\Dependency|null

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

戻り値 array

失敗したキーの配列

                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 method

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

定義場所: yii\caching\Cache::offsetExists()

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

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

public boolean offsetExists ( $key )
$key string

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

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

            
offsetGet() public method

定義場所: yii\caching\Cache::offsetGet()

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

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

public mixed offsetGet ( $key )
$key string

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

戻り値 mixed

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

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

            
offsetSet() public method

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

定義場所: yii\caching\Cache::offsetUnset()

指定されたキーを持つ値をキャッシュから削除します。このメソッドは、インターフェース ArrayAccess によって要求されます。

public void offsetUnset ( $key )
$key string

削除する値のキー

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

            
on() public method

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

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

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

これは親クラスで宣言されたメソッドの実装です。

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

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

$value string

キャッシュする値。他の型($serializer を無効にしている場合)は、getValue() で正しく取得できない可能性があります。

$duration integer

キャッシュされた値の有効期限(秒数)。0 以下の場合は、1 年間の有効期限となります。

戻り値 boolean

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

                protected function setValue($key, $value, $duration)
{
    $this->gc();
    $cacheFile = $this->getCacheFile($key);
    if ($this->directoryLevel > 0) {
        @FileHelper::createDirectory(dirname($cacheFile), $this->dirMode, true);
    }
    // If ownership differs the touch call will fail, so we try to
    // rebuild the file from scratch by deleting it first
    // https://github.com/yiisoft/yii2/pull/16120
    if (is_file($cacheFile) && function_exists('posix_geteuid') && fileowner($cacheFile) !== posix_geteuid()) {
        @unlink($cacheFile);
    }
    if (@file_put_contents($cacheFile, $value, LOCK_EX) !== false) {
        if ($this->fileMode !== null) {
            @chmod($cacheFile, $this->fileMode);
        }
        if ($duration <= 0) {
            $duration = 31536000; // 1 year
        }
        return @touch($cacheFile, $duration + time());
    }
    $error = error_get_last();
    Yii::warning("Unable to write cache file '{$cacheFile}': {$error['message']}", __METHOD__);
    return false;
}

            
setValues() protected method

定義場所: yii\caching\Cache::setValues()

複数のキーバリューペアをキャッシュに格納します。

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

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

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

$duration integer

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

戻り値 array

失敗したキーの配列

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