0 フォロワー

クラス yii\web\Cookie

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

Cookie は、$name$value$domainなど、Cookieに関連する情報を表します。

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

公開プロパティ

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

プロパティ 説明 定義元
$domain string Cookieのドメイン yii\web\Cookie
$expire integer|string|DateTimeInterface|null Cookieが期限切れになるタイムスタンプまたは日付。 yii\web\Cookie
$httpOnly boolean CookieをHTTPプロトコルでのみアクセス可能にするかどうか。 yii\web\Cookie
$name string Cookieの名前 yii\web\Cookie
$path string Cookieが利用可能になるサーバー上のパス。 yii\web\Cookie
$sameSite string SameSiteは、ブラウザがクロスサイトリクエストと共にこのCookieを送信するのを防ぎます。 yii\web\Cookie
$secure boolean Cookieをセキュアな接続を介して送信するかどうか。 yii\web\Cookie
$value string Cookieの値 yii\web\Cookie

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\BaseObject
__construct() コンストラクタ。 yii\base\BaseObject
__get() オブジェクトプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されているかどうか(定義されていてnullではない)を確認します。 yii\base\BaseObject
__set() オブジェクトプロパティの値を設定します。 yii\base\BaseObject
__toString() $valueに明示的にアクセスすることなく、Cookieオブジェクトを文字列に変換するマジックメソッド。 yii\web\Cookie
__unset() オブジェクトプロパティをnullに設定します。 yii\base\BaseObject
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject

定数

継承された定数を隠す

定数 説明 定義元
SAME_SITE_LAX 'Lax' SameSiteポリシーLaxは、CSRFになりやすいリクエストメソッド(例:POST、PUT、PATCHなど)の間、すべてのクロスサイトブラウジングコンテキストでブラウザがCookieを送信するのを防ぎます。https://otherdomain.comからhttps://yourdomain.comへのPOSTリクエストにはCookieは含まれませんが、GETリクエストには含まれます。ユーザーがhttps://otherdomain.comからhttps://yourdomain.comへのリンクをクリックすると、Cookieが含まれます。 yii\web\Cookie
SAME_SITE_NONE 'None' SameSiteポリシーNoneはSameSiteポリシーを無効にするため、Cookieはすべてのコンテキストで送信されます。つまり、ファーストパーティとクロスオリジンの両方のリクエストへのレスポンスで送信されます。https://otherdomain.comからhttps://yourdomain.comへのPOSTリクエストにはCookieが含まれます。注:`sameSite`がNoneに設定されている場合、`secure`属性を`true`に設定する必要があります(それ以外の場合は、Cookieがブラウザによってブロックされます)。 yii\web\Cookie
SAME_SITE_STRICT 'Strict' SameSiteポリシーStrictは、リクエストメソッドに関係なく、通常のリンクをクリックする場合でも、すべてのクロスサイトブラウジングコンテキストでブラウザがCookieを送信するのを防ぎます。https://otherdomain.comからhttps://yourdomain.comへのGETリクエスト、またはユーザーがhttps://otherdomain.comからhttps://yourdomain.comへのリンクをクリックしても、Cookieは含まれません。 yii\web\Cookie

プロパティの詳細

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

$domain public プロパティ

Cookieのドメイン

public string $domain ''
$expire public プロパティ

クッキーの有効期限を表すタイムスタンプまたは日付です。これはサーバーのタイムスタンプです。デフォルトは0で、「ブラウザが閉じられるまで」を意味します(nullも同様です)。

$httpOnly public プロパティ

クッキーがHTTPプロトコルでのみアクセス可能であるかどうかを指定します。このプロパティをtrueに設定すると、JavaScriptなどのスクリプト言語からクッキーにアクセスできなくなり、XSS攻撃によるなりすましを効果的に防ぐことができます。

public boolean $httpOnly true
$name public プロパティ

Cookieの名前

public string $name null
$path public プロパティ

クッキーが使用可能なサーバー上のパスです。デフォルトは'/'です。

public string $path '/'
$sameSite public プロパティ (バージョン 2.0.21 から利用可能)

SameSiteは、ブラウザがクロスサイトリクエストと共にこのCookieを送信するのを防ぎます。

sameSiteの詳細については、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSiteを参照してください。

public string $sameSite self::SAME_SITE_LAX
$secure public プロパティ

Cookieをセキュアな接続を介して送信するかどうか。

public boolean $secure false
$value public プロパティ

Cookieの値

public string $value ''

メソッドの詳細

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

__call() public メソッド

定義されている場所: yii\base\BaseObject::__call()

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

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

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

メソッド名

$params array

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

未知のメソッドを呼び出した場合

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

            
__construct() public メソッド

定義されている場所: yii\base\BaseObject::__construct()

コンストラクタ。

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

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

このメソッドを子クラスでオーバーライドする場合は、

  • コンストラクタの最後の引数を、ここにある$configのような設定配列にすることをお勧めします。
  • コンストラクタの最後に親の実装を呼び出してください。
public void __construct ( $config = [] )
$config array

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

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

            
__get() public メソッド

定義されている場所: yii\base\BaseObject::__get()

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

これはPHPのマジックメソッドであり、$value = $object->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)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public メソッド

定義されている場所: yii\base\BaseObject::__isset()

プロパティが設定されているかどうか(定義されていてnullではない)を確認します。

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

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

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

public boolean __isset ( $name )
$name string

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

戻り値 boolean

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

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

            
__set() public メソッド

定義位置: yii\base\BaseObject::__set()

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

これはPHPのマジックメソッドであり、`$object->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)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__toString() public メソッド

$valueに明示的にアクセスすることなく、Cookieオブジェクトを文字列に変換するマジックメソッド。

if (isset($request->cookies['name'])) {
    $value = (string) $request->cookies['name'];
}
public string __toString ( )
戻り値 string

クッキーの値。valueプロパティがnullの場合、空文字列が返されます。

                public function __toString()
{
    return (string) $this->value;
}

            
__unset() public メソッド

定義位置: yii\base\BaseObject::__unset()

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

これはPHPのマジックメソッドであり、`unset($object->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);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() public メソッド

定義位置: yii\base\BaseObject::canGetProperty()

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

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

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

関連情報: canSetProperty().

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

プロパティ名

$checkVars boolean

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

戻り値 boolean

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

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

            
canSetProperty() public メソッド

定義位置: yii\base\BaseObject::canSetProperty()

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

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

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

関連情報: canGetProperty().

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

プロパティ名

$checkVars boolean

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

戻り値 boolean

プロパティを書き込むことができるかどうか

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

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

定義位置: yii\base\BaseObject::className()

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

public static string className ( )
戻り値 string

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

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

            
hasMethod() public メソッド

定義位置: yii\base\BaseObject::hasMethod()

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

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

public boolean hasMethod ( $name )
$name string

メソッド名

戻り値 boolean

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

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

            
hasProperty() public メソッド

定義位置: yii\base\BaseObject::hasProperty()

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

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

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

関連情報:

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

プロパティ名

$checkVars boolean

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

戻り値 boolean

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

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

            
init() public メソッド

定義位置: yii\base\BaseObject::init()

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

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

public void init ( )

                public function init()
{
}