This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release!

クッキー

class Cake\Controller\Component\CookieComponent(ComponentRegistry $collection, array $config = [])

CookieComponent は PHP に組み込まれている setcookie() メソッドのラッパーです。 このコンポーネントは、 Cookie の扱いを容易にし、 Cookie のデータを暗号化します。 CookieComponent で追加されたクッキーは、コントローラーのアクションが完了した場合にのみ送られます。

バージョン 3.5.0 で非推奨: クッキーは、 ServerRequest で利用できます。 クッキー をご覧ください。 クッキーの暗号化は クッキー暗号化ミドルウェア をご覧ください。

コンポーネントの使い方

CookieComponent は、いくつかのメソッドを提供します。

Cake\Controller\Component\CookieComponent::write(mixed $key, mixed $value = null)

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);
Cake\Controller\Component\CookieComponent::read(mixed $key = null)

このメソッドは、 $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() を使用してください。

Cake\Controller\Component\CookieComponent::check($key)
パラメータ:
  • $key (string) -- チェックするキー

キーやパスが存在するか、また null かどうかチェックするために使います。

Cake\Controller\Component\CookieComponent::delete(mixed $key)

$key の名前を持つ Cookie 変数を削除します。ドット記法と一緒に扱います。

// 変数の削除
$this->Cookie->delete('bar');

// Cookie の bar の値を削除しますが、foo 以下のすべてを削除するわけではありません
$this->Cookie->delete('foo.bar');