0 フォロワー

クラス yii\caching\MemCache

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

MemCache は、memcachememcached をベースとした、キャッシュアプリケーションコンポーネントを実装します。

MemCache は memcachememcached の両方をサポートしています。$useMemcached を true または false に設定することで、MemCache が memcached または memcache のどちらを使用するかを指定できます。

MemCache は、$servers プロパティを設定することで、memcache サーバーのリストで構成できます。デフォルトでは、MemCache はポート 11211 で localhost 上で実行されている memcache サーバーがあると想定しています。

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

memcache のデータはセキュリティ対策が施されていません。システム上で実行されているすべてのプロセスからアクセスできます。

MemCache をキャッシュアプリケーションコンポーネントとして使用するには、次のようにアプリケーションを構成します。

[
    'components' => [
        'cache' => [
            'class' => 'yii\caching\MemCache',
            'servers' => [
                [
                    'host' => 'server1',
                    'port' => 11211,
                    'weight' => 60,
                ],
                [
                    'host' => 'server2',
                    'port' => 11211,
                    'weight' => 40,
                ],
            ],
        ],
    ],
]

上記では、server1 と server2 の 2 つの memcache サーバーが使用されています。`persistent`、`weight`、`timeout` など、各サーバーのその他のプロパティも構成できます。yii\caching\MemCacheServer で利用可能なオプションを参照してください。

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

公開プロパティ

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

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$defaultDuration integer キャッシュエントリが期限切れになるまでの秒数(デフォルト)。 yii\caching\Cache
$keyPrefix string すべてのキャッシュキーの前に付加される文字列。これにより、キャッシュストレージ全体でグローバルに一意になります。 yii\caching\Cache
$memcache \Memcache|\Memcached このキャッシュコンポーネントで使用される memcache(または memcached)オブジェクト。 yii\caching\MemCache
$options array Memcached のオプション。 yii\caching\MemCache
$password string Memcached SASL パスワード。 yii\caching\MemCache
$persistentId string Memcached インスタンスを識別する ID。 yii\caching\MemCache
$serializer array|null|false キャッシュされたデータをシリアル化および逆シリアル化するために使用される関数。 yii\caching\Cache
$servers yii\caching\MemCacheServer[] memcache サーバー構成のリスト。 yii\caching\MemCache
$useMemcached boolean 基盤となるキャッシング拡張機能として memcached または memcache を使用するかどうか。 yii\caching\MemCache
$username string Memcached SASL ユーザー名。 yii\caching\MemCache

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() 既存のオブジェクトをクローンしてオブジェクトが作成された後にこのメソッドが呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているかどうか(定義されていてnullではない)を確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
add() キャッシュにキーで識別される値を格納します(キャッシュにそのキーが含まれていない場合)。 yii\caching\Cache
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが持つべきビヘイビアのリストを返します。 yii\base\Component
buildKey() 指定されたキーから正規化されたキャッシュキーを構築します。 yii\caching\Cache
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
delete() 指定されたキーを持つ値をキャッシュから削除します。 yii\caching\Cache
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
exists() 指定されたキーがキャッシュに存在するかどうかを確認します。 yii\caching\Cache
flush() キャッシュからすべての値を削除します。 yii\caching\Cache
get() 指定されたキーでキャッシュから値を取得します。 yii\caching\Cache
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getMemcache() 基盤となる memcache(または memcached)オブジェクトを返します。 yii\caching\MemCache
getOrSet() set() メソッドと get() メソッドを組み合わせたメソッドで、$key で識別される値を取得するか、$key に利用可能なキャッシュがない場合は $callable の実行結果を格納します。 yii\caching\Cache
getServers() memcache または memcached サーバー構成を返します。 yii\caching\MemCache
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントのプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() このアプリケーションコンポーネントを初期化します。 yii\caching\MemCache
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
setServers() yii\caching\MemCache
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

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

メソッド 説明 定義元
addMemcacheServers() 指定されたキャッシュのサーバプールにサーバを追加します。memcache PECL 拡張機能で使用されます。 yii\caching\MemCache
addMemcachedServers() 指定されたキャッシュのサーバプールにサーバを追加します。memcached PECL 拡張機能で使用されます。 yii\caching\MemCache
addServers() 指定されたキャッシュのサーバプールにサーバを追加します。 yii\caching\MemCache
addValue() キャッシュにキーで識別される値を格納します(キャッシュにそのキーが含まれていない場合)。 yii\caching\MemCache
addValues() 複数のキーと値のペアをキャッシュに追加します。 yii\caching\Cache
deleteValue() 指定されたキーを持つ値をキャッシュから削除します。これは親クラスで宣言されたメソッドの実装です。 yii\caching\MemCache
flushValues() キャッシュからすべての値を削除します。 yii\caching\MemCache
getValue() 指定されたキーでキャッシュから値を取得します。 yii\caching\MemCache
getValues() 指定されたキーでキャッシュから複数の値を取得します。 yii\caching\MemCache
normalizeDuration() 期間値を正規化します。 yii\caching\MemCache
setValue() キーで識別される値をキャッシュに保存します。 yii\caching\MemCache
setValues() 複数のキーと値のペアをキャッシュに保存します。 yii\caching\MemCache

プロパティの詳細

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

$memcache public property

このキャッシュコンポーネントで使用される memcache(または memcached)オブジェクト。

public \Memcache|\Memcached $memcache null
$options public property

$useMemcached が true の場合にのみ使用される Memcached のオプション。

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

public array $options null
$password public property

$useMemcached が true の場合にのみ使用される Memcached sasl パスワード。

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

public string $password null
$persistentId public property

$useMemcached が true の場合にのみ使用される、Memcached インスタンスを識別する ID。デフォルトでは、Memcached インスタンスはリクエストの最後に破棄されます。リクエスト間で永続するインスタンスを作成するには、インスタンスの一意の ID を指定できます。同じ ID で作成されたすべてのインスタンスは、同じ接続を共有します。

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

public string $persistentId null
$servers public property

memcache サーバ設定のリスト。このプロパティの型は、ゲッターとセッターで異なります。getServers()setServers() を参照してください。

$useMemcached public property

基盤となるキャッシュ拡張機能として memcached と memcache のどちらを使用するかを指定します。true の場合、memcached が使用されます。false の場合、memcache が使用されます。デフォルトは false です。

public boolean $useMemcached false
$username public property

$useMemcached が true の場合にのみ使用される Memcached sasl ユーザー名。

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

public string $username null

メソッドの詳細

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

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

            
addMemcacheServers() protectedメソッド

指定されたキャッシュのサーバプールにサーバを追加します。memcache PECL 拡張機能で使用されます。

protected void addMemcacheServers ( $cache, $servers )
$cache \Memcache
$servers yii\caching\MemCacheServer[]

                protected function addMemcacheServers($cache, $servers)
{
    $class = new \ReflectionClass($cache);
    $paramCount = $class->getMethod('addServer')->getNumberOfParameters();
    foreach ($servers as $server) {
        // $timeout is used for memcache versions that do not have $timeoutms parameter
        $timeout = (int) ($server->timeout / 1000) + (($server->timeout % 1000 > 0) ? 1 : 0);
        if ($paramCount === 9) {
            $cache->addserver(
                $server->host,
                $server->port,
                $server->persistent,
                $server->weight,
                $timeout,
                $server->retryInterval,
                $server->status,
                $server->failureCallback,
                $server->timeout
            );
        } else {
            $cache->addserver(
                $server->host,
                $server->port,
                $server->persistent,
                $server->weight,
                $timeout,
                $server->retryInterval,
                $server->status,
                $server->failureCallback
            );
        }
    }
}

            
addMemcachedServers() protectedメソッド

指定されたキャッシュのサーバプールにサーバを追加します。memcached PECL 拡張機能で使用されます。

protected void addMemcachedServers ( $cache, $servers )
$cache \Memcached
$servers yii\caching\MemCacheServer[]

                protected function addMemcachedServers($cache, $servers)
{
    $existingServers = [];
    if ($this->persistentId !== null) {
        foreach ($cache->getServerList() as $s) {
            $existingServers[$s['host'] . ':' . $s['port']] = true;
        }
    }
    foreach ($servers as $server) {
        if (empty($existingServers) || !isset($existingServers[$server->host . ':' . $server->port])) {
            $cache->addServer($server->host, $server->port, $server->weight);
        }
    }
}

            
addServers() protectedメソッド

指定されたキャッシュのサーバプールにサーバを追加します。

protected void addServers ( $cache, $servers )
$cache \Memcache|\Memcached
$servers yii\caching\MemCacheServer[]
例外発生 yii\base\InvalidConfigException

                protected function addServers($cache, $servers)
{
    if (empty($servers)) {
        $servers = [new MemCacheServer([
            'host' => '127.0.0.1',
            'port' => 11211,
        ])];
    } else {
        foreach ($servers as $server) {
            if ($server->host === null) {
                throw new InvalidConfigException("The 'host' property must be specified for every memcache server.");
            }
        }
    }
    if ($this->useMemcached) {
        $this->addMemcachedServers($cache, $servers);
    } else {
        $this->addMemcacheServers($cache, $servers);
    }
}

            
addValue() protectedメソッド

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

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

関連情報: Memcache::set().

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

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

$value mixed

キャッシュされる値

$duration integer

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

戻り値 boolean

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

                protected function addValue($key, $value, $duration)
{
    $expire = $this->normalizeDuration($duration);
    return $this->useMemcached ? $this->_cache->add($key, $value, $expire) : $this->_cache->add($key, $value, 0, $expire);
}

            
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)
{
    return $this->_cache->delete($key, 0);
}

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

定義済み: yii\caching\Cache::exists()

指定されたキーがキャッシュに存在するかどうかを確認します。

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

public boolean exists ( $key )
$key mixed

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

戻り値 boolean

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

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

            
flush() public メソッド

定義済み: yii\caching\Cache::flush()

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

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

public boolean flush ( )
戻り値 boolean

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

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

            
flushValues() protected メソッド

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

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

protected boolean flushValues ( )
戻り値 boolean

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

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

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

            
getMemcache() publicメソッド

基盤となる memcache(または memcached)オブジェクトを返します。

public \Memcache|\Memcached getMemcache ( )
戻り値 \Memcache|\Memcached

このキャッシュコンポーネントで使用される memcache(または memcached)オブジェクト。

例外発生 yii\base\InvalidConfigException

memcacheまたはmemcached拡張子がロードされていない場合

                public function getMemcache()
{
    if ($this->_cache === null) {
        $extension = $this->useMemcached ? 'memcached' : 'memcache';
        if (!extension_loaded($extension)) {
            throw new InvalidConfigException("MemCache requires PHP $extension extension to be loaded.");
        }
        if ($this->useMemcached) {
            $this->_cache = $this->persistentId !== null ? new \Memcached($this->persistentId) : new \Memcached();
            if ($this->username !== null || $this->password !== null) {
                $this->_cache->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);
                $this->_cache->setSaslAuthData($this->username, $this->password);
            }
            if (!empty($this->options)) {
                $this->_cache->setOptions($this->options);
            }
        } else {
            $this->_cache = new \Memcache();
        }
    }
    return $this->_cache;
}

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

戻り値 mixed

$callableの実行結果

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

            
getServers() publicメソッド

memcache または memcached サーバー構成を返します。

public yii\caching\MemCacheServer[] getServers ( )
戻り値 yii\caching\MemCacheServer[]

memcache サーバー構成のリスト。

                public function getServers()
{
    return $this->_servers;
}

            
getValue() protectedメソッド

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

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

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

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

戻り値 mixed|false

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

                protected function getValue($key)
{
    return $this->_cache->get($key);
}

            
getValues() protectedメソッド

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

protected array getValues ( $keys )
$keys array

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

戻り値 array

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

                protected function getValues($keys)
{
    return $this->useMemcached ? $this->_cache->getMulti($keys) : $this->_cache->get($keys);
}

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

このアプリケーションコンポーネントを初期化します。

memcacheインスタンスを作成し、memcacheサーバを追加します。

public void init ( )

                public function init()
{
    parent::init();
    $this->addServers($this->getMemcache(), $this->getServers());
}

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

定義済み: yii\caching\Cache::madd()

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

キャッシュに既にキーが存在する場合は、既存の値と有効期限は保持されます。

public array 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 array 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 array 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 メソッド (バージョン 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 メソッド (バージョン 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);
}

            
normalizeDuration() protected メソッド (バージョン 2.0.31 から利用可能)
protected integer normalizeDuration ( $duration )
$duration integer

                protected function normalizeDuration($duration)
{
    if ($duration < 0) {
        return 0;
    }
    if ($duration < 2592001) {
        return $duration;
    }
    return $duration + time();
}

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

            
setServers() publicメソッド
public void setServers ( $config )
$config array

memcacheまたはmemcachedサーバの設定リスト。各要素は、host、port、persistent、weight、timeout、retryInterval、statusというキーを持つ配列でなければなりません。

                public function setServers($config)
{
    foreach ($config as $c) {
        $this->_servers[] = new MemCacheServer($c);
    }
}

            
setValue() protectedメソッド

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

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

関連情報: Memcache::set().

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

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

$value mixed

キャッシュされる値。

$duration integer

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

戻り値 boolean

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

                protected function setValue($key, $value, $duration)
{
    $expire = $this->normalizeDuration($duration);
    return $this->useMemcached ? $this->_cache->set($key, $value, $expire) : $this->_cache->set($key, $value, 0, $expire);
}

            
setValues() protectedメソッド

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

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

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

$duration integer

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

戻り値 array

失敗したキーの配列。

                protected function setValues($data, $duration)
{
    if ($this->useMemcached) {
        $expire = $this->normalizeDuration($duration);
        // Memcached::setMulti() returns boolean
        // @see https://www.php.net/manual/en/memcached.setmulti.php
        return $this->_cache->setMulti($data, $expire) ? [] : array_keys($data);
    }
    return parent::setValues($data, $duration);
}

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