セッション変数をコマンドラインから覗けるとデバッグ時に便利なので、覗けるようにする。
普通のセッションの場合
#!/usr/bin/php -q <?php $filename = $argv[1]; $data = file_get_contents($filename); session_start(); session_decode($data); session_destroy(); print_r($_SESSION);
# ./test_unsession.php /var/lib/php/session/sess_xxxxxxxxxx
ポイントは session_start() と session_decode()
セッションの場合、なんか特別なシリアライズ方法を使っているらしい。 なので、そのへんを良きに計らってくれるsession_decode()を使う。
session_decode()は データをデコードしたあと$_SESSION に突っ込んでくれる。しかし、セッションを開始していないと存在しないのでデコード前にsession_start()を呼ぶ必要がある。
もちろんこんなセッションはのちのち邪魔になるので、使い終わったら忘れずに削除する。
FuelPHPのセッションの場合
#!/usr/bin/php -q <?php $filename = $argv[1]; $data = file_get_contents($filename); $session = unserialize($data); print_r($session);
$ ./test_unsession.php /tmp/fuelfid_xxxxxxxxxx
FuelPHPではセッション管理をクッキーではなくファイルにしたときにのみ、セッションファイルが作られる。 その管理も独自でおこなっている。
といっても変数を普通にシリアライズしてファイルに突っ込んでいるだけなので、とくに工夫なくunserialize()を呼ぶだけでよい。