CookieComponent は PHP に組み込まれている setcookie()
メソッドのラッパーです。
このコンポーネントは、 Cookie の扱いを容易にし、 Cookie のデータを暗号化します。
CookieComponent で追加されたクッキーは、コントローラーのアクションが完了した場合にのみ送られます。
バージョン 3.5.0 で非推奨: クッキーは、 ServerRequest
で利用できます。 クッキー をご覧ください。
クッキーの暗号化は クッキー暗号化ミドルウェア をご覧ください。
CookieComponent は、いくつかのメソッドを提供します。
write() は Cookie コンポーネントの核となるメソッドです。 $key は Cookie の 変数名で、$value は保存されるデータです。
$this->Cookie->write('name', 'Larry');
キーのパラメーターにドット記法を使うことで、変数をグループで扱うこともできます。
$this->Cookie->write('User.name', 'Larry');
$this->Cookie->write('User.role', 'Lead');
もし、一つの値より多くの値を、一度に Cookie へ書き込みたい場合は、 配列を通すことで可能です。:
$this->Cookie->write('User',
['name' => 'Larry', 'role' => 'Lead']
);
Cookie の全ての値はデフォルトでは AES で暗号化されています。もし平文で 保存したい場合は、必ずキースペースを設定してください。
$this->Cookie->configKey('User', 'encryption', false);
このメソッドは、 $key によって指定された変数名で Cookie の値を読むために 使われます。
// "Larry"が出力されます
echo $this->Cookie->read('name');
// ドットで記法で読むこともできます
echo $this->Cookie->read('User.name');
// ドット記法でグループ化された変数は、次のように
// 配列として取得されます。
$this->Cookie->read('User');
// ['name' => 'Larry', 'role' => 'Lead']
警告
CookieComponent は、 ,
を含む文字列に対処できません。コンポーネントは、
これらの値を配列として解釈しようとしますが、結果は正しくありません。代わりに、
$request->getCookie()
を使用してください。
$key (string
) -- チェックするキー
キーやパスが存在するか、また null かどうかチェックするために使います。
$key の名前を持つ Cookie 変数を削除します。ドット記法と一緒に扱います。
// 変数の削除
$this->Cookie->delete('bar');
// Cookie の bar の値を削除しますが、foo 以下のすべてを削除するわけではありません
$this->Cookie->delete('foo.bar');