2

永続的なセッションを必要としないRESTfulアプリケーションを表すSymfony2アプリがあります。

アプリケーションへのリクエストごとに、デフォルトのセッション構成が与えられ、クライアントがセッションCookieを無視する場合、新しいセッションファイルがデフォルトのセッション保存パスの。に作成されますapp/cache/<env>/sessions

アプリは1日に多くのリクエストを受信するため、不要なセッションファイルが大量に発生します。実行rm -Rf app/cache/prod/session/*は完了するのに数分かかります。

アプリにセッションデータが保存されていない方がいいと思います。

アプリケーション構成セッションの保存パスを/dev/nullまたはに設定しようとしましたが、ディレクトリがすでに存在するため(for )、または指定されたパスがディレクトリではないため(for) /dev/null/sessions、例外が発生します。/dev/null/dev/null/<anything>

framework:
    session:
        save_path: /dev/null

セッションのドキュメントを読んで私ができる最善のことは、セッションを無効にすることです。これにより、すべてのセッション属性がクリアされ、セッションIDが再生成されます。これでは、セッションがなく、永続的なセッションファイルがない状態にはなりません。

Symfony2にリクエストのセッションデータを保存させないようにすることはできますか?

4

1 に答える 1

1

独自のセッションハンドラーを定義して、sessionサービスエイリアスをそれに置き換えることができます。

services:
    session:
        class: Path\To\Your\Session\Class

標準のセッションクラスで実装を確認できますSymfony\Component\HttpFoundation\Session\Session

于 2012-09-27T15:13:32.300 に答える