私はDancer2と私のWebアプリケーション用のYAMLセッションエンジンを使用しています。 マイconfig.yml
がDancer2のセッションオブジェクトにアクセスするには?
engines:
session:
YAML:
...
cookie_duration: 5 minutes
...
が含まれている私は「あなたのセッションはX分に期限が切れる」のようなものを表示したいと思います。
この値にはどのようにしてアクセスできますか。つまり、私のルートの$session
オブジェクトにはどうすればアクセスできますか? session username => 'Bob';
と$username = session('username');
などの
session
で 、など私は、設定値を得ることに興味がない
注(settings('engines')->{session}{YAML}{cookie_duration}
)それは私が「文字列だからdは解析しなければならず、YAMLがセッションエンジンに依存しています。 $session->session_duration
にアクセスしたいと思います。
それはそのように使われているときsession'だけのセッションオブジェクトを返す 'として、あなたは、'セッション - > expires'を行う必要があります。しかし、私のテストでは 'undef'を返しました。しかし、私は完全な設定を持っていないと私は間違って何かをした可能性があります。 'Data :: Printer'を介して' p session'を実行すると 'session'が返すDancer2 :: Core :: Sessionオブジェクトに' expires'メソッドがあることがわかります。 'cookie_duration'はサーバー上のセッションの有効期限ではありません。 https://metacpan.org/pod/Dancer2::Core::Session#expires – simbabque
を参照してくださいねえ、クール!それがまさに解決策です。私の設定では 'session-> expires'は1514648770(' now + 6 months'、私は現在 'cookie_duration'として設定した値です)を返します。完璧。私の問題は、その値にアクセスする方法や、 'session()'を '$ session'に変換する方法がわからないことでした。あなたが(短い)答えを書いたら、アップヴォートでそれを圧倒するでしょう。 ;-) – PerlDuck