0 フォロワー

クラス yii\caching\ExpressionDependency

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

ExpressionDependency は、PHP 式の結果に基づく依存関係を表します。

ExpressionDependency は、PHP 式を評価するために eval() を使用します。依存関係は、式の結果が、データをキャッシュに保存したときに評価された結果と同じ場合にのみ、変更なしとして報告されます。

PHP 式は、値を返す任意の PHP コードにすることができます。式が何かについて詳しく知るには、PHP マニュアルを参照してください。

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

パブリックプロパティ

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

プロパティ 説明 定義元
$data mixed キャッシュに保存され、後で最新の依存関係データと比較される依存関係データ。 yii\caching\Dependency
$expression string 結果が依存関係を決定するために使用される PHP 式の文字列表現。 yii\caching\ExpressionDependency
$params mixed この依存関係に関連付けられたカスタムパラメータ。 yii\caching\ExpressionDependency
$reusable boolean この依存関係が再利用可能かどうか。 yii\caching\Dependency

パブリックメソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\BaseObject
__construct() コンストラクタ。 yii\base\BaseObject
__get() オブジェクトプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されているか(つまり、定義されていて null でないか)をチェックします。 yii\base\BaseObject
__set() オブジェクトプロパティの値を設定します。 yii\base\BaseObject
__unset() オブジェクトプロパティを null に設定します。 yii\base\BaseObject
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
evaluateDependency() 依存関係に関連するデータを生成および保存することにより、依存関係を評価します。 yii\caching\Dependency
getHasChanged() 依存関係が変更されたかどうかを示す値を返します。 yii\caching\Dependency
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject
isChanged() 依存関係が変更されたかどうかを確認します。 yii\caching\Dependency
resetReusableData() 再利用可能な依存関係のキャッシュされたすべてのデータをリセットします。 yii\caching\Dependency

保護されたメソッド

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

メソッド 説明 定義元
generateDependencyData() 依存関係が変更されたかどうかを判断するために必要なデータを生成します。 yii\caching\ExpressionDependency
generateReusableHash() 再利用可能な依存関係データを取得するために使用できる一意のハッシュを生成します。 yii\caching\Dependency

プロパティの詳細

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

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

結果が依存関係を決定するために使用される PHP 式の文字列表現。PHP 式は、値を評価する任意の PHP コードにすることができます。式が何かについて詳しく知るには、PHP マニュアルを参照してください。

public string $expression 'true'
$params パブリックプロパティ

この依存関係に関連付けられたカスタムパラメータ。$expression$this->params を使用して、このプロパティの値を取得できます。

public mixed $params null

メソッドの詳細

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

__call() パブリックメソッド

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

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

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

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

メソッド名

$params array

メソッドパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

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

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

            
__construct() パブリックメソッド

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

コンストラクタ。

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

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

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

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

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

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

            
__get() public メソッド

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

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

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

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

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

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

            
__isset() public メソッド

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

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

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

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

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

public boolean __isset ( $name )
$name string

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

return boolean

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

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

            
__set() public メソッド

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

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

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

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

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

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

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

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

            
__unset() public メソッド

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

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

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

プロパティが定義されていない場合、このメソッドは何もしないことに注意してください。プロパティが読み取り専用の場合、例外がスローされます。

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

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

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

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

            
canGetProperty() public メソッド

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

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

プロパティが読み取り可能な場合は、次のようになります。

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

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

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

プロパティ名

$checkVars boolean

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

return boolean

プロパティを読み取ることができるかどうか

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

            
canSetProperty() public メソッド

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

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

プロパティが書き込み可能な場合は、次のようになります。

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

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

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

プロパティ名

$checkVars boolean

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

return boolean

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

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

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

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

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

public static string className ( )
return string

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

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

            
evaluateDependency() public メソッド

定義元: yii\caching\Dependency::evaluateDependency()

依存関係に関連するデータを生成および保存することにより、依存関係を評価します。

このメソッドは、データをキャッシュに書き込む前にキャッシュによって呼び出されます。

public void evaluateDependency ( $cache )
$cache yii\caching\CacheInterface

この依存関係を現在評価しているキャッシュコンポーネント

                public function evaluateDependency($cache)
{
    if ($this->reusable) {
        $hash = $this->generateReusableHash();
        if (!array_key_exists($hash, self::$_reusableData)) {
            self::$_reusableData[$hash] = $this->generateDependencyData($cache);
        }
        $this->data = self::$_reusableData[$hash];
    } else {
        $this->data = $this->generateDependencyData($cache);
    }
}

            
generateDependencyData() protected メソッド

依存関係が変更されたかどうかを判断するために必要なデータを生成します。

このメソッドは PHP 式の結果を返します。

protected mixed generateDependencyData ( $cache )
$cache yii\caching\CacheInterface

この依存関係を現在評価しているキャッシュコンポーネント

return mixed

依存関係が変更されたかどうかを判断するために必要なデータ。

                protected function generateDependencyData($cache)
{
    return eval("return {$this->expression};");
}

            
generateReusableHash() protected メソッド

定義元: yii\caching\Dependency::generateReusableHash()

再利用可能な依存関係データを取得するために使用できる一意のハッシュを生成します。

$reusable も参照してください。

protected string generateReusableHash ( )
return string

このキャッシュ依存関係の一意のハッシュ値。

                protected function generateReusableHash()
{
    $clone = clone $this;
    $clone->data = null; // https://github.com/yiisoft/yii2/issues/3052
    try {
        $serialized = serialize($clone);
    } catch (\Exception $e) {
        // unserializable properties are nulled
        foreach ($clone as $name => $value) {
            if (is_object($value) && $value instanceof \Closure) {
                $clone->{$name} = null;
            }
        }
        $serialized = serialize($clone);
    }
    return sha1($serialized);
}

            
getHasChanged() public メソッド
バージョン 2.0.11 で非推奨になりました。バージョン 2.1 で削除される予定です。代わりに isChanged() を使用してください。

定義元: yii\caching\Dependency::getHasChanged()

依存関係が変更されたかどうかを示す値を返します。

public boolean getHasChanged ( $cache )
$cache yii\caching\CacheInterface

この依存関係を現在評価しているキャッシュコンポーネント

return boolean

依存関係が変更されたかどうか。

                public function getHasChanged($cache)
{
    return $this->isChanged($cache);
}

            
hasMethod() public メソッド

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

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

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

public boolean hasMethod ( $name )
$name string

メソッド名

return boolean

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

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

            
hasProperty() public メソッド

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

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

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

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

参照

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

プロパティ名

$checkVars boolean

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

return boolean

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

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

            
init() public メソッド

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

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

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

public void init ( )

                public function init()
{
}

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

定義元: yii\caching\Dependency::isChanged()

依存関係が変更されたかどうかを確認します。

public boolean isChanged ( $cache )
$cache yii\caching\CacheInterface

この依存関係を現在評価しているキャッシュコンポーネント

return boolean

依存関係が変更されたかどうか。

                public function isChanged($cache)
{
    if ($this->reusable) {
        $hash = $this->generateReusableHash();
        if (!array_key_exists($hash, self::$_reusableData)) {
            self::$_reusableData[$hash] = $this->generateDependencyData($cache);
        }
        $data = self::$_reusableData[$hash];
    } else {
        $data = $this->generateDependencyData($cache);
    }
    return $data !== $this->data;
}

            
resetReusableData() public static メソッド

定義元: yii\caching\Dependency::resetReusableData()

再利用可能な依存関係のキャッシュされたすべてのデータをリセットします。

public static void resetReusableData ( )

                public static function resetReusableData()
{
    self::$_reusableData = [];
}