CakePHP』を使ってみる 〜12〜 Cookieの使い方確認

CakePHP』1.2でのクッキーの使い方確認。
Cookie のリファレンスを読んでみたらほとんど Session と同じだったので、ちょっと書き換えて試してみた。

クッキーに書き込み

Session で書いたコードをちょっと書き換えてみる。

$this->Cookie->write('myname', array('name', 'yossy'));
echo 'write: '.$this->Cookie->read('myname');
$this->Cookie->delete('myname');
echo 'delete: '.$this->Cookie->read('myname');

以下のようなエラーになった。

Undefined property:  SampleController::$Cookie [APP/controllers/sample_controller.php, line 10]

コンポーネントにクッキーを使うように指定

なんで動かないのかなと思っていたら、CookieComponent と書かれていたのでこれはコンポーネントを使う設定がいるのかな?と思った。
CookieComponentは『CAKE/libs/controller/components/cookie.php』にある。
これを使うように指定してあげたら動くようになった。

<?php
class SampleController extends AppController
{
	var $name = 'Sample';
	var $uses = null;
	var $components = array('Cookie');	// 追加
	function index()
	{
		$this->Cookie->write('myname', array('name', 'yossy'));
		echo 'write: '.$this->Cookie->read('myname');
		$this->Cookie->delete('myname');
		echo 'delete: '.$this->Cookie->read('myname');
	}
}
?>

Session も Component だけど、こちらはデフォルトで自動的にスタートする設定になってるから特に何もしなくても動作していたようだ。