Cookie
class
CookieComponent(ComponentCollection $collection, array $settings = array())
Cookie コンポーネントは PHP に組み込まれている setcookie
メソッドに関連するラッパーです。 コントローラーで Cookie を使ったコーディングをするのにとても便利な糖衣構文も多数含んでいます。 Cookie コンポーネントを使おうとする前に、コントローラーの $components の配列に 'Cookie' を必ず加えてください。
コントローラーのセットアップ
Cookie の発行や操作の設定をすることができる値を以下に示します。これらの値によって Cookie コンポーネントがどのように動くかは、コントローラーの beforeFilter() メソッドでも特別に設定できます。
Cookie の変数 | 規定値 | 内容 |
---|---|---|
string $name | 'CakeCookie' | Cookie の名前です。 |
string $key | null | この文字列は Cookie の値を暗号化するために使われます。 ランダムで特定されにくい文字列を使うべきです。 Rijndael 暗号化を使うときは32バイトより長い値にしなければなりません。 |
string $domain | '' | Cookie を読むことができるドメインの名前を設定します。たとえば、 '.yourdomain.com' を使うと、あなたのサブドメイン全体 からのアクセスを許可します。 |
int または string $time | '5 Days' | Cookie が無効になる時間を設定します。整数ならば秒として解釈され、 0であればセッション Cookie として評価されます。すなわち、ブラウザを 終了したときに破棄されます。文字列を設定したときは、 PHP の strtotime() 関数を使って解釈されます。 write() メソッドの中で 直接設定することもできます。 |
string $path | '/' | Cookie が適用されるサーバーのパスを設定します。 $path に '/foo/' を設定した場合、この Cookie は、あなたのドメインの /foo/ と、 それ以下にあるすべてのサブディレクトリ( /foo/bar など) で有効に なります。既定ではドメイン全体で有効です。 write() メソッドで 直接指定することもできます。 |
boolean $secure | false | セキュアな HTTPS 接続を通してのみ Cookie を伝送するかを設定 します。 true に設定すると、セキュアな接続が確立しているときにのみ Cookie を発行するようになります。 write() メソッドで直接指定する こともできます。 |
boolean $httpOnly | false | true に設定すると HTTP のみで有効な Cookie を作成します。これらの Cookie は Javascript からアクセスすることはできません。 |
以下のサンプルコードは、 Cookie コンポーネントをコントローラーにインクルードする方法と、 セキュアな接続でのみ、 'example.com' というドメインの ‘/bakers/preferences/’ というパス以下で、1時間だけ有効な 'baker_id' という名前の HTTP のみで有効な Cookie の初期設定をするための例です。 :
public $components = array('Cookie');
public function beforeFilter() {
parent::beforeFilter();
$this->Cookie->name = 'baker_id';
$this->Cookie->time = 3600; // または '1 hour'
$this->Cookie->path = '/bakers/preferences/';
$this->Cookie->domain = 'example.com';
$this->Cookie->secure = true; // セキュアな HTTPS で接続している時のみ発行されます
$this->Cookie->key = 'qSI232qs*&sXOw!adre@34SAv!@*(XSL#$%)asGb$@11~_+!@#HKis~#^';
$this->Cookie->httpOnly = true;
}
2
3
4
5
6
7
8
9
10
11
12
それでは、その他の Cookie コンポーネントのメソッドの使い方を見ていきましょう。
コンポーネントの使い方
CookieComponent は Cookie を使った動作をするためにいくつかのメソッドを提供します。
method
CookieComponent::write(mixed $key, mixed $value = null, boolean $encrypt = true, mixed $expires = null)
method
CookieComponent::read(mixed $key = null)
method
CookieComponent::check($key)
method
CookieComponent::delete(mixed $key)
method
CookieComponent::destroy()
method
CookieComponent::type($type)