Cookie クラス

cookie クラスは cookie の値の取得、設定、削除を行うことができます。

設定

cookie クラスの設定はアプリケーションの共通設定ファイル app/config/config.php で行います。設定項目は 'cookie' セクションの中にあり、次のように設定されています。

パラメータ デフォルト 説明
expiration integer
0
cookie の有効期限。この値は set() 関数で $expiration が指定されていないときに使われます。
path string
'/'
cookie が有効となるパスを制限します。この値は set() 関数で $path が指定されていないときに使われます。
domain string
null
cookie が有効となるドメインを制限します。この値は set() 関数で $domain が指定されていないときに使われます。
secure boolean
false
true を設定したときはセキュアな接続の時のみ cookie が送信されます。
httponly boolean
false
true を設定したときは HTTP によるアクセスのときのみ cookie が送信されます。 Javascript によるアクセスの時は送信されません。

もしこれらのうち1つあるいは複数の値が設定から抜けていた場合、Cookie クラスは表に定義されているデフォルトの値が適用されます。

クッキーを利用する場合、app/config/config.php 及び php.ini の設定が サーバのタイムゾーンと合っていることを必ず確認して下さい。 クッキーの有効期限のタイムスタンプはグリニッジ標準時なので、タイムゾーンにずれがあると有効期限が誤って計算され、 正しく有効期限切れにならなかったり、ブラウザが既に有効期限切れになってしまいクッキーが全く効かなくなってしまいます。

get($name = null, $default = null)

get 関数は $_COOKIE 変数から値を取得します。$name が指定されていないときは全ての値を取得します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name 任意 $_COOKIE 変数の中でのキー
$default
null
指定された $name が取得できなかったときに返すデフォルトの値
返り値 mixed
$theme = Cookie::get('theme', 'blue');

set($name, $value, $expiration = null, $path = null, $domain = null, $secure = null, $httponly = null)

set 関数は cookie を作成し、値を設定します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name 必須 $_COOKIE 変数内でのキー
$value 必須 cookie に設定する値
$expiration
null
cookie の有効期間(秒)
$path
null
cookie が有効となるパス
$domain
null
cookie が有効となるドメイン
$secure
null
true を設定したときはセキュアな接続の時のみ cookie が送信されます。
$httponly
null
true を設定したときは HTTP によるアクセスのときのみ cookie が送信されます。 Javascript によるアクセスの時は送信されません。
返り値 boolean
Cookie::set('theme', 'blue', 60 * 60 * 24);

デフォルトが null のパラメータについては、 null 、もしくは未指定の場合は共通設定ファイルで指定された設定値が使われます。

delete($name, $path = null, $domain = null, $secure = null, $httponly = null)

delete 関数は $_COOKIE 変数から値を削除します。

クッキーが特定のパスあるいはドメインにおいて生成された時、delete 関数も与えておく必要があります。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name 必須 削除するキー
$path
null
cookie が有効となるパス
$domain
null
cookie が有効となるドメイン
$secure
null
true を設定したときはセキュアな接続の時のみ cookie が送信されます。
$httponly
null
true を設定したときは HTTP によるアクセスのときのみ cookie が送信されます。 Javascript によるアクセスの時は送信されません。
返り値 void
// 通常のクッキーを削除する
\Cookie::delete('theme');

// パスとともにクッキーを設定する
\Cookie::set('theme', 'fuel', null, '/account/');

// パスで設定したクッキーを削除する
\Cookie::delete('theme', '/account/');