0 フォロワー

クラス yii\caching\FileDependency

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

FileDependency は、ファイルの最終更新時刻に基づいた依存関係を表します。

$fileName で指定されたファイルの最終更新時刻が変更された場合、依存関係は変更されたとみなされます。

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

公開プロパティ

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

プロパティ 説明 定義元
$data mixed キャッシュに保存され、後で最新の依存関係データと比較される依存関係データ。 yii\caching\Dependency
$fileName string 最終更新時刻を使用して依存関係が変更されたかどうかを確認するために使用されるファイルパスまたはパスエイリアス yii\caching\FileDependency
$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\FileDependency
generateReusableHash() 再利用可能な依存関係データの取得に使用できる一意のハッシュを生成します。 yii\caching\Dependency

プロパティの詳細

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

$fileName public property

最終更新時刻を使用して依存関係が変更されたかどうかを確認するために使用されるファイルパスまたはパスエイリアス

public string $fileName null

メソッドの詳細

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

__call() public method

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

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

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

public 混合型 __call ( $name, $params )
$name string

メソッド名

$params 配列

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

不明なメソッド呼び出し時

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

            
__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\BaseObject::__get()

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

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

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

public 混合型 __get ( $name )
$name string

プロパティ名

戻り値 mixed

プロパティ値

例外 yii\base\UnknownPropertyException

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

例外 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

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

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

プロパティ値

例外 yii\base\UnknownPropertyException

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

例外 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

プロパティ名

例外 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()

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

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

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

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

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

プロパティ名

$checkVars boolean

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

戻り値 boolean

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

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

            
canSetProperty() public メソッド

定義場所: yii\base\BaseObject::canSetProperty()

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

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

  • クラスに、指定された名前と関連付けられたセッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合(`$checkVars` が true の場合)。

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

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

プロパティ名

$checkVars boolean

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

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

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

このメソッドは、ファイルの最終更新時刻を返します。

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

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

戻り値 mixed

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

例外 yii\base\InvalidConfigException

$fileName が設定されていない場合

                protected function generateDependencyData($cache)
{
    if ($this->fileName === null) {
        throw new InvalidConfigException('FileDependency::fileName must be set');
    }
    $fileName = Yii::getAlias($this->fileName);
    clearstatcache(false, $fileName);
    return @filemtime($fileName);
}

            
generateReusableHash() protectedメソッド

定義場所: yii\caching\Dependency::generateReusableHash()

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

参照: $reusable.

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

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

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

メソッド名

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

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

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

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

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