PHP API 利用時のセッションの利用と注意点

セッションの利用」では Java API 利用時のセッション利用について説明しました。

ここでは PHP API のときのセッションの利用方法と、その注意点について説明します。

さて、早速ですが PHP のセッションについて簡単に説明します。

PHP では $_SESSION 変数が特定のセッションを表しています。

仕組みとしてはユーザーがクッキーベースで、PHPSESSIONID というキーで(ランダムな)値を送信します。

PHP はそのキーを元にセッションストレージをチェックし、そこに値があればそれを $_SESSION 変数にロードします。$_SESSION は実際には連想配列であり、キーと値のペアを保持できます。もし、サーバー側でセッションストレージをチェックして、それが PHPSESSIONID キーを元にデータを引けない場合は新規のセッションを作成します。

Google App Engine でもこの仕組みは利用可能です。

通常の PHP の場合と同様に session_start() を呼び出せば利用できます。

注意するポイントとしては、Google App Engine では MemCache をセッションストレージに利用しているという点です。 高速に読み書きできる点は良いのですが、定期的に(比較的短時間で)セッションの内容が消えてしまいます。

アプリケーションの要件で、セッションの状態を比較的長く保持したい場合は Cloud SQL などにセッションストレージを移す必要があります。

セッションストレージを Cloud SQL のような MySQL データベースに移す方法については「PHP の セッションストレージを MySQL に切替える方法」などを参考にしてください。