0 follower

クラス yii\web\CacheSession

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

CacheSession は、キャッシュをストレージ媒体として使用するセッションコンポーネントです。

使用されるキャッシュは、任意のキャッシュアプリケーションコンポーネントです。キャッシュアプリケーションコンポーネントのIDは、$cache を介して指定され、デフォルトは 'cache' です。

注意:キャッシュストレージは定義上揮発性であるため、そこに保存されたデータはスワップアウトされ、失われる可能性があります。したがって、このコンポーネントで使用されるキャッシュが揮発性ではないことを確認する必要があります。データベースをストレージ媒体として使用したい場合は、yii\web\DbSession の方が適切です。

次の例は、アプリケーションで CacheSession を使用するように構成する方法を示しています。`components` の下にアプリケーション設定に追加します。

'session' => [
    'class' => 'yii\web\CacheSession',
    // 'cache' => 'mycache',
]

公開プロパティ

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

プロパティ 説明 定義元
$_forceRegenerateId string|null useStrictMode が有効になっていて、セッションIDを再生成する必要がある場合のセッションIDを保持します。 yii\web\Session
$_originalSessionModule string|null カスタムハンドラが登録される前の元のセッションモジュール(カスタムハンドラが登録される前)を保持します。これにより、カスタムハンドラのないSessionコンポーネントがカスタムハンドラのあるSessionコンポーネントの後に使用された場合に、それを復元できます。 yii\web\Session
$allFlashes array フラッシュメッセージ (キー => メッセージ、またはキー => [メッセージ1、メッセージ2])。 yii\web\Session
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされているビヘイビアのリスト。 yii\base\Component
$cache yii\caching\CacheInterface|array|string キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネントID。 yii\web\CacheSession
$cacheLimiter string 現在のキャッシュリミッター。 yii\web\Session
$cookieParams array セッションクッキーのパラメータ。 yii\web\Session
$count integer セッション変数の数。 yii\web\Session
$flash string フラッシュメッセージを識別するキー。 yii\web\Session
$flashParam string フラッシュメッセージデータを保存するセッション変数の名前。 yii\web\Session
$gCProbability float GC(ガベージコレクション)プロセスが各セッション初期化で開始される確率(パーセンテージ)。 yii\web\Session
$handler SessionHandlerInterface|array SessionHandlerInterface を実装するオブジェクト、または構成配列。 yii\web\Session
$hasSessionId boolean 現在のリクエストがセッションIDを送信したかどうか。 yii\web\Session
$id string 現在のセッションID。 yii\web\Session
$isActive boolean セッションが開始したかどうか。 yii\web\Session
$iterator yii\web\SessionIterator セッション変数をトラバースするためのイテレータ。 yii\web\Session
$name string 現在のセッション名。 yii\web\Session
$savePath string 現在のセッション保存パス。デフォルトは '/tmp'。 yii\web\Session
$timeout integer データを「ガベージ」と見なしてクリーンアップするまでの秒数。 yii\web\Session
$useCookies boolean|null クッキーを使用してセッションIDを保存するかどうかを示す値。 yii\web\Session
$useCustomStorage boolean カスタムストレージを使用するかどうか。 yii\web\CacheSession
$useStrictMode boolean 厳格モードが有効かどうか。 yii\web\Session
$useTransparentSessionID boolean 透過的なsidサポートが有効かどうか。デフォルトはfalse。 yii\web\Session

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__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
addFlash() フラッシュメッセージを追加します。 yii\web\Session
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが動作するべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
close() 現在のセッションを終了し、セッションデータを保存します。 yii\web\Session
count() セッション内のアイテム数を返します。 yii\web\Session
destroy() すべてのセッション変数を解放し、セッションに登録されているすべてのデータを破棄します。 yii\web\Session
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors()で宣言されたビヘイビアが、このコンポーネントにアタッチされていることを確認します。 yii\base\Component
get() セッション変数の名前でセッション変数の値を返します。 yii\web\Session
getAllFlashes() すべてのフラッシュメッセージを返します。 yii\web\Session
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getCacheLimiter() 現在のキャッシュリミッターを返します。 yii\web\Session
getCookieParams() yii\web\Session
getCount() セッション内のアイテム数を返します。 yii\web\Session
getFlash() フラッシュメッセージを返します。 yii\web\Session
getGCProbability() yii\web\Session
getHasSessionId() 現在のリクエストがセッションIDを送信したかどうかを示す値を返します。 yii\web\Session
getId() セッションIDを取得します。 yii\web\Session
getIsActive() yii\web\Session
getIterator() セッション変数をトラバースするためのイテレータを返します。 yii\web\Session
getName() 現在のセッションの名前を取得します。 yii\web\Session
getSavePath() 現在のセッション保存パスを取得します。 yii\web\Session
getTimeout() yii\web\Session
getUseCookies() クッキーを使用してセッションIDを保存するかどうかを示す値を返します。 yii\web\Session
getUseCustomStorage() カスタムセッションストレージを使用するかどうかを示す値を返します。 yii\web\CacheSession
getUseStrictMode() yii\web\Session
getUseTransparentSessionID() yii\web\Session
has() yii\web\Session
hasEventHandlers() 指定されたイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasFlash() 指定されたキーに関連付けられたフラッシュメッセージが存在するかどうかを示す値を返します。 yii\web\Session
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() アプリケーションコンポーネントを初期化します。 yii\web\CacheSession
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
offsetExists() このメソッドは、インターフェース ArrayAccess によって要求されます。 yii\web\Session
offsetGet() このメソッドは、インターフェース ArrayAccess によって要求されます。 yii\web\Session
offsetSet() このメソッドは、インターフェース ArrayAccess によって要求されます。 yii\web\Session
offsetUnset() このメソッドは、インターフェース ArrayAccess によって要求されます。 yii\web\Session
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
open() セッションを開始します。 yii\web\Session
regenerateID() 新しく生成されたIDで現在のセッションIDを更新します。 yii\web\Session
remove() セッション変数を削除します。 yii\web\Session
removeAll() すべてのセッション変数を削除します。 yii\web\Session
removeAllFlashes() すべてのフラッシュメッセージを削除します。 yii\web\Session
removeFlash() フラッシュメッセージを削除します。 yii\web\Session
set() セッション変数を追加します。 yii\web\Session
setCacheLimiter() キャッシュリミッターを設定します。 yii\web\Session
setCookieParams() セッションクッキーのパラメーターを設定します。 yii\web\Session
setFlash() フラッシュメッセージを設定します。 yii\web\Session
setGCProbability() yii\web\Session
setHasSessionId() 現在のリクエストがセッションIDを送信したかどうかを示す値を設定します。 yii\web\Session
setId() セッションIDを設定します。 yii\web\Session
setName() 現在のセッションの名前を設定します。 yii\web\Session
setSavePath() 現在のセッションの保存パスを設定します。 yii\web\Session
setTimeout() yii\web\Session
setUseCookies() セッションIDの保存にクッキーを使用するかどうかを示す値を設定します。 yii\web\Session
setUseStrictMode() yii\web\Session
setUseTransparentSessionID() yii\web\Session
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

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

メソッド 説明 定義元
calculateKey() キャッシュにセッションデータを保存するために使用される一意のキーを生成します。 yii\web\CacheSession
freeze() セッションが開始されている場合、セッションのini設定を編集することはできません。PHP7.2以降では例外をスローします。 yii\web\Session
registerSessionHandler() セッションハンドラーを登録します。 yii\web\Session
unfreeze() セッションを開始し、一時変数からデータを復元します。 yii\web\Session
updateFlashCounters() フラッシュメッセージのカウンターを更新し、期限切れのフラッシュメッセージを削除します。 yii\web\Session

プロパティの詳細

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

$cache public property

キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネントID。セッションデータはこのキャッシュオブジェクトを使用して保存されます。

CacheSessionオブジェクトの作成後、このプロパティを変更する場合は、キャッシュオブジェクトのみを割り当てる必要があります。

バージョン2.0.2以降、オブジェクトを作成するための設定配列にすることもできます。

$useCustomStorage public property

カスタムストレージを使用するかどうか。

public boolean $useCustomStorage 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 method

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

定義場所: 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);
}

            
addFlash() publicメソッド

定義場所: yii\web\Session::addFlash()

フラッシュメッセージを追加します。

同じキーを持つフラッシュメッセージが既に存在する場合は、新しいメッセージが既存のメッセージ配列に追加されます。

こちらも参照してください

public void addFlash ( $key, $value true, $removeAfterAccess true )
$key string

フラッシュメッセージを識別するキー。

$value mixed

フラッシュメッセージ

$removeAfterAccess boolean

フラッシュメッセージがアクセスされた場合のみ自動的に削除するかどうかを指定します。falseの場合、アクセスされたかどうかに関係なく、次回のリクエスト後にフラッシュメッセージは自動的に削除されます。true(デフォルト値)の場合、フラッシュメッセージはアクセスされるまで保持されます。

                public function addFlash($key, $value = true, $removeAfterAccess = true)
{
    $counters = $this->get($this->flashParam, []);
    $counters[$key] = $removeAfterAccess ? -1 : 0;
    $_SESSION[$this->flashParam] = $counters;
    if (empty($_SESSION[$key])) {
        $_SESSION[$key] = [$value];
    } elseif (is_array($_SESSION[$key])) {
        $_SESSION[$key][] = $value;
    } else {
        $_SESSION[$key] = [$_SESSION[$key], $value];
    }
}

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

            
calculateKey() protectedメソッド

キャッシュにセッションデータを保存するために使用される一意のキーを生成します。

protected mixed calculateKey ( $id )
$id string

セッション変数名

戻り値 mixed

セッション変数名に関連付けられた安全なキャッシュキー

                protected function calculateKey($id)
{
    return [__CLASS__, $id];
}

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

            
close() public メソッド

定義場所: yii\web\Session::close()

現在のセッションを終了し、セッションデータを保存します。

public void close ( )

                public function close()
{
    if ($this->getIsActive()) {
        YII_DEBUG ? session_write_close() : @session_write_close();
    }
    $this->_forceRegenerateId = null;
}

            
count() public メソッド

定義場所: yii\web\Session::count()

セッション内のアイテム数を返します。

このメソッドは、Countable インターフェースで必須です。

public integer count ( )
戻り値 integer

セッション内のアイテム数。

                #[\ReturnTypeWillChange]
public function count()
{
    return $this->getCount();
}

            
destroy() public メソッド

定義場所: yii\web\Session::destroy()

すべてのセッション変数を解放し、セッションに登録されているすべてのデータを破棄します。

セッションがアクティブでない場合、このメソッドは効果がありません。open()を呼び出してから使用してください。

こちらも参照してください

public void destroy ( )

                public function destroy()
{
    if ($this->getIsActive()) {
        $sessionId = session_id();
        $this->close();
        $this->setId($sessionId);
        $this->open();
        session_unset();
        session_destroy();
        $this->setId($sessionId);
    }
}

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

            
freeze() protected メソッド (バージョン 2.0.14 以降で使用可能)

定義場所: yii\web\Session::freeze()

セッションが開始されている場合、セッションのini設定を編集することはできません。PHP7.2以降では例外をスローします。

この関数は、セッションデータを一時変数に保存し、セッションを停止します。

protected void freeze ( )

                protected function freeze()
{
    if ($this->getIsActive()) {
        if (isset($_SESSION)) {
            $this->_frozenSessionData = $_SESSION;
        }
        $this->close();
        Yii::info('Session frozen', __METHOD__);
    }
}

            
get() public メソッド

定義場所: yii\web\Session::get()

セッション変数の名前でセッション変数の値を返します。

セッション変数が存在しない場合、$defaultValueが返されます。

public mixed get ( $key, $defaultValue null )
$key string

セッション変数名

$defaultValue mixed

セッション変数が存在しない場合に返されるデフォルト値。

戻り値 mixed

セッション変数値、またはセッション変数が存在しない場合は$defaultValue。

                public function get($key, $defaultValue = null)
{
    $this->open();
    return isset($_SESSION[$key]) ? $_SESSION[$key] : $defaultValue;
}

            
getAllFlashes() public メソッド

定義場所: yii\web\Session::getAllFlashes()

すべてのフラッシュメッセージを返します。

このメソッドを使用して、ビューファイルですべてのフラッシュメッセージを表示できます。

<?php
foreach (Yii::$app->session->getAllFlashes() as $key => $message) {
    echo '<div class="alert alert-' . $key . '">' . $message . '</div>';
} ?>

上記のコードを使用すると、フラッシュメッセージキーとしてsuccessinfodangerなどのbootstrap alertクラスを使用して、divの色を変更できます。

addFlash()を使用する場合、$messageは配列になるため、上記のコードを調整する必要があります。

こちらも参照してください

public array getAllFlashes ( $delete false )
$delete boolean

このメソッドの呼び出し直後にフラッシュメッセージを削除するかどうか。falseの場合、フラッシュメッセージは次のリクエストで自動的に削除されます。

戻り値 array

フラッシュメッセージ (キー => メッセージ、またはキー => [メッセージ1、メッセージ2])。

                public function getAllFlashes($delete = false)
{
    $counters = $this->get($this->flashParam, []);
    $flashes = [];
    foreach (array_keys($counters) as $key) {
        if (array_key_exists($key, $_SESSION)) {
            $flashes[$key] = $_SESSION[$key];
            if ($delete) {
                unset($counters[$key], $_SESSION[$key]);
            } elseif ($counters[$key] < 0) {
                // mark for deletion in the next request
                $counters[$key] = 1;
            }
        } else {
            unset($counters[$key]);
        }
    }
    $_SESSION[$this->flashParam] = $counters;
    return $flashes;
}

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

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

定義位置: yii\web\Session::getCacheLimiter()

現在のキャッシュリミッターを返します。

public string getCacheLimiter ( )
戻り値 string

現在のキャッシュリミッター

                public function getCacheLimiter()
{
    return session_cache_limiter();
}

            
getCookieParams() public メソッド
public array getCookieParams ( )
戻り値 array

セッションクッキーのパラメータ。

                public function getCookieParams()
{
    return array_merge(session_get_cookie_params(), array_change_key_case($this->_cookieParams));
}

            
getCount() public メソッド

定義位置: yii\web\Session::getCount()

セッション内のアイテム数を返します。

public integer getCount ( )
戻り値 integer

セッション変数の数

                public function getCount()
{
    $this->open();
    return count($_SESSION);
}

            
getFlash() public メソッド

定義位置: yii\web\Session::getFlash()

フラッシュメッセージを返します。

こちらも参照してください

public mixed getFlash ( $key, $defaultValue null, $delete false )
$key string

フラッシュメッセージを識別するキー

$defaultValue mixed

フラッシュメッセージが存在しない場合に返される値。

$delete boolean

このメソッド呼び出し後すぐにこのフラッシュメッセージを削除するかどうか。falseの場合、フラッシュメッセージは次のリクエストで自動的に削除されます。

戻り値 mixed

フラッシュメッセージ、またはaddFlashが使用された場合はメッセージの配列。

                public function getFlash($key, $defaultValue = null, $delete = false)
{
    $counters = $this->get($this->flashParam, []);
    if (isset($counters[$key])) {
        $value = $this->get($key, $defaultValue);
        if ($delete) {
            $this->removeFlash($key);
        } elseif ($counters[$key] < 0) {
            // mark for deletion in the next request
            $counters[$key] = 1;
            $_SESSION[$this->flashParam] = $counters;
        }
        return $value;
    }
    return $defaultValue;
}

            
getGCProbability() public メソッド
public float getGCProbability ( )
戻り値 float

GC(ガベージコレクション)プロセスが各セッション初期化で開始される確率(パーセンテージ)。

                public function getGCProbability()
{
    return (float) (ini_get('session.gc_probability') / ini_get('session.gc_divisor') * 100);
}

            
getHasSessionId() public メソッド

定義位置: yii\web\Session::getHasSessionId()

現在のリクエストがセッションIDを送信したかどうかを示す値を返します。

デフォルトの実装では、セッション名を使用してCookieと`$_GET`をチェックします。他の方法でセッションIDを送信する場合は、このメソッドをオーバーライドするか、setHasSessionId()を呼び出してセッションIDが送信されたかどうかを明示的に設定する必要があります。

public boolean getHasSessionId ( )
戻り値 boolean

現在のリクエストがセッションIDを送信したかどうか。

                public function getHasSessionId()
{
    if ($this->_hasSessionId === null) {
        $name = $this->getName();
        $request = Yii::$app->getRequest();
        if (!empty($_COOKIE[$name]) && ini_get('session.use_cookies')) {
            $this->_hasSessionId = true;
        } elseif (!ini_get('session.use_only_cookies') && ini_get('session.use_trans_sid')) {
            $this->_hasSessionId = $request->get($name) != '';
        } else {
            $this->_hasSessionId = false;
        }
    }
    return $this->_hasSessionId;
}

            
getId() public メソッド

定義位置: yii\web\Session::getId()

セッションIDを取得します。

これはPHP session_id()のラッパーです。

public string getId ( )
戻り値 string

現在のセッションID

                public function getId()
{
    return session_id();
}

            
getIsActive() public メソッド
public boolean getIsActive ( )
戻り値 boolean

セッションが開始されたかどうか

                public function getIsActive()
{
    return session_status() === PHP_SESSION_ACTIVE;
}

            
getIterator() public メソッド

定義位置: yii\web\Session::getIterator()

セッション変数をトラバースするためのイテレータを返します。

このメソッドは、インターフェースIteratorAggregateで要求されます。

public yii\web\SessionIterator getIterator ( )
戻り値 yii\web\SessionIterator

セッション変数をトラバースするためのイテレータ。

                #[\ReturnTypeWillChange]
public function getIterator()
{
    $this->open();
    return new SessionIterator();
}

            
getName() public メソッド

定義位置: yii\web\Session::getName()

現在のセッションの名前を取得します。

これは、PHP session_name() のラッパーです。

public string getName ( )
戻り値 string

現在のセッション名

                public function getName()
{
    return session_name();
}

            
getSavePath() public メソッド

定義位置: yii\web\Session::getSavePath()

現在のセッション保存パスを取得します。

これは、PHP session_save_path() のラッパーです。

public string getSavePath ( )
戻り値 string

現在のセッション保存パス。デフォルトは '/tmp'。

                public function getSavePath()
{
    return session_save_path();
}

            
getTimeout() public メソッド
public integer getTimeout ( )
戻り値 integer

データが「ガベージ」と見なされ、クリーンアップされるまでの秒数です。デフォルト値は1440秒(またはphp.iniで設定された "session.gc_maxlifetime" の値)です。

                public function getTimeout()
{
    return (int) ini_get('session.gc_maxlifetime');
}

            
getUseCookies() public メソッド

定義位置: yii\web\Session::getUseCookies()

クッキーを使用してセッションIDを保存するかどうかを示す値を返します。

参照: setUseCookies().

public boolean|null getUseCookies ( )
戻り値 boolean|null

クッキーを使用してセッションIDを保存するかどうかを示す値。

                public function getUseCookies()
{
    if (ini_get('session.use_cookies') === '0') {
        return false;
    } elseif (ini_get('session.use_only_cookies') === '1') {
        return true;
    }
    return null;
}

            
getUseCustomStorage() public メソッド

カスタムセッションストレージを使用するかどうかを示す値を返します。

このメソッドは親実装をオーバーライドし、常にtrueを返します。

public boolean getUseCustomStorage ( )
戻り値 boolean

カスタムストレージを使用するかどうか。

                public function getUseCustomStorage()
{
    return true;
}

            
getUseStrictMode() public メソッド (バージョン2.0.38から利用可能)
public boolean getUseStrictMode ( )
戻り値 boolean

厳格モードが有効かどうか。

                public function getUseStrictMode()
{
    if (PHP_VERSION_ID < 50502) {
        return self::$_useStrictModePolyfill;
    }
    return (bool)ini_get('session.use_strict_mode');
}

            
getUseTransparentSessionID() public メソッド
public boolean getUseTransparentSessionID ( )
戻り値 boolean

透過的なsidサポートが有効かどうか。デフォルトはfalse。

                public function getUseTransparentSessionID()
{
    return ini_get('session.use_trans_sid') == 1;
}

            
has() public メソッド

定義位置: yii\web\Session::has()

public boolean has ( $key )
$key mixed

セッション変数名

戻り値 boolean

指定されたセッション変数が存在するかどうか

                public function has($key)
{
    $this->open();
    return isset($_SESSION[$key]);
}

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

            
hasFlash() public メソッド

定義位置: yii\web\Session::hasFlash()

指定されたキーに関連付けられたフラッシュメッセージが存在するかどうかを示す値を返します。

public boolean hasFlash ( $key )
$key string

フラッシュメッセージの種類を識別するキー

戻り値 boolean

指定されたキーの下にフラッシュメッセージが存在するかどうか

                public function hasFlash($key)
{
    return $this->getFlash($key) !== null;
}

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

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

public void init ( )

                public function init()
{
    parent::init();
    $this->cache = Instance::ensure($this->cache, 'yii\caching\CacheInterface');
}

            
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\web\Session::offsetExists()

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

public boolean offsetExists ( $offset )
$offset integer|string

確認するオフセット

                #[\ReturnTypeWillChange]
public function offsetExists($offset)
{
    $this->open();
    return isset($_SESSION[$offset]);
}

            
offsetGet() publicメソッド

定義されている場所: yii\web\Session::offsetGet()

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

public mixed offsetGet ( $offset )
$offset integer|string

要素を取得するオフセット。

戻り値 mixed

オフセットにある要素。オフセットに要素がない場合はnull。

                #[\ReturnTypeWillChange]
public function offsetGet($offset)
{
    $this->open();
    return isset($_SESSION[$offset]) ? $_SESSION[$offset] : null;
}

            
offsetSet() publicメソッド

定義されている場所: yii\web\Session::offsetSet()

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

public void offsetSet ( $offset, $item )
$offset integer|string

要素を設定するオフセット

$item mixed

要素の値

                #[\ReturnTypeWillChange]
public function offsetSet($offset, $item)
{
    $this->open();
    $_SESSION[$offset] = $item;
}

            
offsetUnset() publicメソッド

定義されている場所: yii\web\Session::offsetUnset()

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

public void offsetUnset ( $offset )
$offset integer|string

要素をアンセットするオフセット

                #[\ReturnTypeWillChange]
public function offsetUnset($offset)
{
    $this->open();
    unset($_SESSION[$offset]);
}

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

            
open() publicメソッド

定義されている場所: yii\web\Session::open()

セッションを開始します。

public void open ( )

                public function open()
{
    if ($this->getIsActive()) {
        return;
    }
    $this->registerSessionHandler();
    $this->setCookieParamsInternal();
    YII_DEBUG ? session_start() : @session_start();
    if ($this->getUseStrictMode() && $this->_forceRegenerateId) {
        $this->regenerateID();
        $this->_forceRegenerateId = null;
    }
    if ($this->getIsActive()) {
        Yii::info('Session started', __METHOD__);
        $this->updateFlashCounters();
    } else {
        $error = error_get_last();
        $message = isset($error['message']) ? $error['message'] : 'Failed to start session.';
        Yii::error($message, __METHOD__);
    }
}

            
regenerateID() publicメソッド

定義されている場所: yii\web\Session::regenerateID()

新しく生成されたIDで現在のセッションIDを更新します。

詳細はhttps://www.php.net/session_regenerate_idを参照してください。

セッションがアクティブでない場合、このメソッドは効果がありません。open()を呼び出してから使用してください。

こちらも参照してください

public void regenerateID ( $deleteOldSession false )
$deleteOldSession boolean

古い関連付けられたセッションファイルを削除するかどうか。

                public function regenerateID($deleteOldSession = false)
{
    if ($this->getIsActive()) {
        // add @ to inhibit possible warning due to race condition
        // https://github.com/yiisoft/yii2/pull/1812
        if (YII_DEBUG && !headers_sent()) {
            session_regenerate_id($deleteOldSession);
        } else {
            @session_regenerate_id($deleteOldSession);
        }
    }
}

            
registerSessionHandler() protectedメソッド

定義されている場所: yii\web\Session::registerSessionHandler()

セッションハンドラーを登録します。

protected void registerSessionHandler ( )
例外 yii\base\InvalidConfigException

                protected function registerSessionHandler()
{
    $sessionModuleName = session_module_name();
    if (static::$_originalSessionModule === null) {
        static::$_originalSessionModule = $sessionModuleName;
    }
    if ($this->handler !== null) {
        if (!is_object($this->handler)) {
            $this->handler = Yii::createObject($this->handler);
        }
        if (!$this->handler instanceof \SessionHandlerInterface) {
            throw new InvalidConfigException('"' . get_class($this) . '::handler" must implement the SessionHandlerInterface.');
        }
        YII_DEBUG ? session_set_save_handler($this->handler, false) : @session_set_save_handler($this->handler, false);
    } elseif ($this->getUseCustomStorage()) {
        if (YII_DEBUG) {
            session_set_save_handler(
                [$this, 'openSession'],
                [$this, 'closeSession'],
                [$this, 'readSession'],
                [$this, 'writeSession'],
                [$this, 'destroySession'],
                [$this, 'gcSession']
            );
        } else {
            @session_set_save_handler(
                [$this, 'openSession'],
                [$this, 'closeSession'],
                [$this, 'readSession'],
                [$this, 'writeSession'],
                [$this, 'destroySession'],
                [$this, 'gcSession']
            );
        }
    } elseif (
        $sessionModuleName !== static::$_originalSessionModule
        && static::$_originalSessionModule !== null
        && static::$_originalSessionModule !== 'user'
    ) {
        session_module_name(static::$_originalSessionModule);
    }
}

            
remove() publicメソッド

定義されている場所: yii\web\Session::remove()

セッション変数を削除します。

public mixed remove ( $key )
$key string

削除するセッション変数の名前

戻り値 mixed

削除された値。そのようなセッション変数がない場合はnull。

                public function remove($key)
{
    $this->open();
    if (isset($_SESSION[$key])) {
        $value = $_SESSION[$key];
        unset($_SESSION[$key]);
        return $value;
    }
    return null;
}

            
removeAll() publicメソッド

定義されている場所: yii\web\Session::removeAll()

すべてのセッション変数を削除します。

public void removeAll ( )

                public function removeAll()
{
    $this->open();
    foreach (array_keys($_SESSION) as $key) {
        unset($_SESSION[$key]);
    }
}

            
removeAllFlashes() publicメソッド

定義されている場所: yii\web\Session::removeAllFlashes()

すべてのフラッシュメッセージを削除します。

フラッシュメッセージと通常のセッション変数は同じ名前空間を共有しています。同じ名前を使用する通常のセッション変数がある場合、このメソッドによって削除されます。

こちらも参照してください

public void removeAllFlashes ( )

                public function removeAllFlashes()
{
    $counters = $this->get($this->flashParam, []);
    foreach (array_keys($counters) as $key) {
        unset($_SESSION[$key]);
    }
    unset($_SESSION[$this->flashParam]);
}

            
removeFlash() publicメソッド

定義先: yii\web\Session::removeFlash()

フラッシュメッセージを削除します。

こちらも参照してください

public mixed removeFlash ( $key )
$key string

フラッシュメッセージを識別するキーです。フラッシュメッセージと通常のセッション変数は同じ名前空間を共有していることに注意してください。同じ名前の通常のセッション変数がある場合、このメソッドによって削除されます。

戻り値 mixed

削除されたフラッシュメッセージ。フラッシュメッセージが存在しない場合はNull。

                public function removeFlash($key)
{
    $counters = $this->get($this->flashParam, []);
    $value = isset($_SESSION[$key], $counters[$key]) ? $_SESSION[$key] : null;
    unset($counters[$key], $_SESSION[$key]);
    $_SESSION[$this->flashParam] = $counters;
    return $value;
}

            
set() publicメソッド

定義先: yii\web\Session::set()

セッション変数を追加します。

指定された名前が既に存在する場合は、古い値が上書きされます。

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

セッション変数名

$value mixed

セッション変数の値

                public function set($key, $value)
{
    $this->open();
    $_SESSION[$key] = $value;
}

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

定義先: yii\web\Session::setCacheLimiter()

キャッシュリミッターを設定します。

public void setCacheLimiter ( $cacheLimiter )
$cacheLimiter string

                public function setCacheLimiter($cacheLimiter)
{
    $this->freeze();
    session_cache_limiter($cacheLimiter);
    $this->unfreeze();
}

            
setCookieParams() publicメソッド

定義先: yii\web\Session::setCookieParams()

セッションクッキーのパラメーターを設定します。

このメソッドに渡されたクッキーパラメータは、`session_get_cookie_params()`の結果とマージされます。

こちらも参照: https://www.php.net/manual/en/function.session-set-cookie-params.php.

public void setCookieParams ( array $value )
$value array

クッキーパラメータ。有効なキーには、`lifetime`、`path`、`domain`、`secure`、`httponly`が含まれます。Yii 2.0.21以降、`sameSite`もサポートされています。PHPバージョン7.3.0以上が必要です。セキュリティのため、サポートされていないPHPバージョンで`sameSite`を設定すると例外がスローされます。異なるPHPバージョン間でこの機能を使用するには、最初にバージョンを確認してください。例:`php` [

'sameSite' => PHP_VERSION_ID >= 70300 ? yii\web\Cookie::SAME_SITE_LAX : null,

] `php` https://owasp.org/www-community/SameSite を参照して、`sameSite`に関する詳細情報を確認してください。

例外 yii\base\InvalidArgumentException

パラメータが不完全な場合。

                public function setCookieParams(array $value)
{
    $this->_cookieParams = $value;
}

            
setFlash() publicメソッド

定義先: yii\web\Session::setFlash()

フラッシュメッセージを設定します。

フラッシュメッセージは、リクエスト内でアクセスされた後に自動的に削除され、削除は次のリクエストで行われます。同じキーを持つフラッシュメッセージが既に存在する場合は、新しいメッセージによって上書きされます。

こちらも参照してください

public void setFlash ( $key, $value true, $removeAfterAccess true )
$key string

フラッシュメッセージを識別するキーです。フラッシュメッセージと通常のセッション変数は同じ名前空間を共有していることに注意してください。同じ名前の通常のセッション変数がある場合、このメソッドによってその値が上書きされます。

$value mixed

フラッシュメッセージ

$removeAfterAccess boolean

フラッシュメッセージがアクセスされた場合のみ自動的に削除するかどうかを指定します。falseの場合、アクセスされたかどうかに関係なく、次回のリクエスト後にフラッシュメッセージは自動的に削除されます。true(デフォルト値)の場合、フラッシュメッセージはアクセスされるまで保持されます。

                public function setFlash($key, $value = true, $removeAfterAccess = true)
{
    $counters = $this->get($this->flashParam, []);
    $counters[$key] = $removeAfterAccess ? -1 : 0;
    $_SESSION[$key] = $value;
    $_SESSION[$this->flashParam] = $counters;
}

            
setGCProbability() publicメソッド
public void setGCProbability ( $value )
$value float

GC(ガベージコレクション)プロセスが各セッション初期化で開始される確率(パーセンテージ)。

例外 yii\base\InvalidArgumentException

値が0から100の間でない場合。

                public function setGCProbability($value)
{
    $this->freeze();
    if ($value >= 0 && $value <= 100) {
        // percent * 21474837 / 2147483647 ≈ percent * 0.01
        ini_set('session.gc_probability', floor($value * 21474836.47));
        ini_set('session.gc_divisor', 2147483647);
    } else {
        throw new InvalidArgumentException('GCProbability must be a value between 0 and 100.');
    }
    $this->unfreeze();
}

            
setHasSessionId() publicメソッド

定義先: yii\web\Session::setHasSessionId()

現在のリクエストがセッションIDを送信したかどうかを示す値を設定します。

このメソッドは、セッションIDが送信されているかどうかを判断するデフォルトの方法を上書きできるように提供されています。

public void setHasSessionId ( $value )
$value boolean

現在のリクエストがセッションIDを送信したかどうか。

                public function setHasSessionId($value)
{
    $this->_hasSessionId = $value;
}

            
setId() publicメソッド

定義先: yii\web\Session::setId()

セッションIDを設定します。

これはPHP session_id()のラッパーです。

public void setId ( $value )
$value string

現在のセッションのセッションID

                public function setId($value)
{
    session_id($value);
}

            
setName() publicメソッド

定義先: yii\web\Session::setName()

現在のセッションの名前を設定します。

これは、PHP session_name() のラッパーです。

public void setName ( $value )
$value string

現在のセッションのセッション名。英数字の文字列である必要があります。"PHPSESSID"がデフォルトです。

                public function setName($value)
{
    $this->freeze();
    session_name($value);
    $this->unfreeze();
}

            
setSavePath() publicメソッド

定義先: yii\web\Session::setSavePath()

現在のセッションの保存パスを設定します。

これは、PHP session_save_path() のラッパーです。

public void setSavePath ( $value )
$value string

現在のセッションの保存パス。ディレクトリ名またはパスエイリアスのいずれかです。

例外 yii\base\InvalidArgumentException

パスが有効なディレクトリでない場合

                public function setSavePath($value)
{
    $path = Yii::getAlias($value);
    if (is_dir($path)) {
        session_save_path($path);
    } else {
        throw new InvalidArgumentException("Session save path is not a valid directory: $value");
    }
}

            
setTimeout() publicメソッド
public void setTimeout ( $value )
$value integer

データを「ガベージ」と見なしてクリーンアップするまでの秒数

                public function setTimeout($value)
{
    $this->freeze();
    ini_set('session.gc_maxlifetime', $value);
    $this->unfreeze();
}

            
setUseCookies() publicメソッド

定義先: yii\web\Session::setUseCookies()

セッションIDの保存にクッキーを使用するかどうかを示す値を設定します。

3つの状態が可能です。

  • true: クッキーのみを使用してセッションIDを保存します。
  • false: クッキーを使用してセッションIDを保存しません。
  • null: 可能であれば、クッキーを使用してセッションIDを保存します。不可能な場合は、他のメカニズム(例:GETパラメータ)を使用します。
public void setUseCookies ( $value )
$value boolean|null

クッキーを使用してセッションIDを保存するかどうかを示す値。

                public function setUseCookies($value)
{
    $this->freeze();
    if ($value === false) {
        ini_set('session.use_cookies', '0');
        ini_set('session.use_only_cookies', '0');
    } elseif ($value === true) {
        ini_set('session.use_cookies', '1');
        ini_set('session.use_only_cookies', '1');
    } else {
        ini_set('session.use_cookies', '1');
        ini_set('session.use_only_cookies', '0');
    }
    $this->unfreeze();
}

            
setUseStrictMode() publicメソッド (バージョン2.0.38から利用可能)
public void setUseStrictMode ( $value )
$value boolean

厳格モードの有効/無効を設定します。trueの場合、この設定により、セッションコンポーネントが初期化されていないセッションIDを使用することが防止されます。注: PHP 5.5.2より前のバージョンでuseStrictModeを有効にするのは、カスタムストレージクラスを使用する場合のみサポートされます。警告!厳格モードの有効化はセキュアなセッションには必須ですが、'session.use-strict-mode'のデフォルト値は0です。

                public function setUseStrictMode($value)
{
    if (PHP_VERSION_ID < 50502) {
        if ($this->getUseCustomStorage() || !$value) {
            self::$_useStrictModePolyfill = $value;
        } else {
            throw new InvalidConfigException('Enabling `useStrictMode` on PHP < 5.5.2 is only supported with custom storage classes.');
        }
    } else {
        $this->freeze();
        ini_set('session.use_strict_mode', $value ? '1' : '0');
        $this->unfreeze();
    }
}

            
setUseTransparentSessionID() publicメソッド
public void setUseTransparentSessionID ( $value )
$value boolean

透過的なsidサポートの有効/無効を設定します。

                public function setUseTransparentSessionID($value)
{
    $this->freeze();
    ini_set('session.use_trans_sid', $value ? '1' : '0');
    $this->unfreeze();
}

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

            
unfreeze() protectedメソッド (バージョン2.0.14から利用可能)

定義位置: yii\web\Session::unfreeze()

セッションを開始し、一時変数からデータを復元します。

protected void unfreeze ( )

                protected function unfreeze()
{
    if (null !== $this->_frozenSessionData) {
        YII_DEBUG ? session_start() : @session_start();
        if ($this->getIsActive()) {
            Yii::info('Session unfrozen', __METHOD__);
        } else {
            $error = error_get_last();
            $message = isset($error['message']) ? $error['message'] : 'Failed to unfreeze session.';
            Yii::error($message, __METHOD__);
        }
        $_SESSION = $this->_frozenSessionData;
        $this->_frozenSessionData = null;
    }
}

            
updateFlashCounters() protectedメソッド

定義位置: yii\web\Session::updateFlashCounters()

フラッシュメッセージのカウンターを更新し、期限切れのフラッシュメッセージを削除します。

このメソッドは、init()内で一度だけ呼び出す必要があります。

protected void updateFlashCounters ( )

                protected function updateFlashCounters()
{
    $counters = $this->get($this->flashParam, []);
    if (is_array($counters)) {
        foreach ($counters as $key => $count) {
            if ($count > 0) {
                unset($counters[$key], $_SESSION[$key]);
            } elseif ($count == 0) {
                $counters[$key]++;
            }
        }
        $_SESSION[$this->flashParam] = $counters;
    } else {
        // fix the unexpected problem that flashParam doesn't return an array
        unset($_SESSION[$this->flashParam]);
    }
}