Symfony-cookies-session-management
symfony-クッキーとセッション管理
Symfony HttpFoundationコンポーネントは、オブジェクト指向の方法でCookieおよびセッション管理を提供します。 Cookie はクライアント側のデータストレージを提供し、少量のデータのみをサポートします。 通常、ドメインごとに2KBであり、ブラウザによって異なります。 *セッション*はサーバー側のデータストレージを提供し、大量のデータをサポートします。 Symfony WebアプリケーションでCookieとセッションを作成する方法を見てみましょう。
クッキー
SymfonyはCookieクラスを提供してCookieアイテムを作成します。 クッキーの色を作成してみましょう。これは24時間で期限が切れ、値は blue です。 Cookieクラスのコンストラクターパラメーターは次のとおりです。
- name(type:string)-クッキー名
- 値(タイプ:文字列)-Cookie値
- expire(タイプ:整数/文字列/日時)-有効期限情報
- path(type:string)-Cookieが利用可能なサーバーパス
- domain(type:string)– Cookieが利用可能なドメインアドレス
- セキュア(タイプ:ブール値)-CookieをHTTPS接続で送信する必要があるかどうか
- httpOnly(タイプ:ブール)-CookieがHTTPプロトコルでのみ使用可能かどうか
symfonyは、次の文字列ベースのCookie作成オプションも提供します。
ここで、作成されたCookieを次のようにhttp応答オブジェクトのヘッダーに添付する必要があります。
Cookieを取得するには、次のようにRequestオブジェクトを使用できます。
ここでは、 request→ cookie は PropertyBag タイプであり、PropertyBagメソッドを使用して操作できます。
セッション
symfonyはSessionInterfaceインターフェースを実装するSessionクラスを提供します。 重要なセッションAPIは次のとおりです。
セッション値には任意のデータを使用でき、単純な整数から複雑なオブジェクトまで使用できます。
フラッシュバッグ
セッションは、 FlashBag と呼ばれる別の便利な機能を提供します。 これは、ページのリダイレクト中にのみデータを保持するセッション内の特別なコンテナです。 HTTPリダイレクトで役立ちます。 ページにリダイレクトする前に、データを通常のセッションコンテナの代わりにFlashBagに保存し、保存したデータを次のリクエスト(リダイレクトされたページ)で利用できるようにします。 その後、データは自動的に無効になります。