
CakePHP 2.xでCookieを利用する方法についてです。CakePHPではCookieComponentが用意されており、簡単にCookieを扱えるようになっています。
Cookie利用の準備
CookieComponentを使えるように、コントローラーに下記ソースを記載します。
0 1 2 |
public $components = Array('Cookie'); |
これだけでCakePHPでクッキーが使えるようになります。
Cookieの書込み
0 1 2 |
$this->Cookie->write('key', 'value', false, '7 day'); |
Cookieのキー(名前)、値、暗号化、有効期限の順に記載します。
すべてのCookieの値は暗号化されています。暗号化せず、平文にしたい場合は第三引数をfalseにします。
有効期限は「7 day」「1 hour」「3600」 などの値が利用でき、また、PHP の関数 strtotime()を利用することも可能になっています。
同時に複数のCookieを書き込む
一度に複数のCookieを書き込みたい場合は以下のようにします。
0 1 2 3 4 |
$this->Cookie->write('User', array('name' => 'Larry', 'role' => 'Lead') ); |
Cookieのグルーピング
値のグルーピングを行いたい場合は、ドット記法を使います。
0 1 2 3 |
$this->Cookie->write('User.name', 'Larry'); $this->Cookie->write('User.role', 'Lead'); |
Cookieの表示
Cookieのキーを指定して、値を取得します。
0 1 2 |
$this->Cookie->read('key'); |
Cookieの削除
Cookieのキーを指定してデータを削除します。
0 1 2 |
$this->Cookie->delete('key'); |
これで指定されたキーとそれに対応する値、有効期限などが削除されます。
全Cookieの削除
すべてのCookie情報を削除します。
0 1 2 |
$this->Cookie->destroy(); |
Cookieを保存するパスを指定
Cookieを保存するディレクトリのパスを指定します。
0 1 2 |
$this->Cookie->path = '/path/'; |
指定しない場合は「/」になります。
Cookieのドメインを指定
Cookieを利用するドメインを指定します。
0 1 2 |
$this->Cookie->domain = 'example.com'; |
参考にさせて頂いたサイト