The Document of Aska

セッション

1. Session プラグインを読み込む

package Hamburger::Context;

use strict;
use warnings;
use parent 'Pickles::Context';

__PACKAGE__->load_plugins(qw(Encode Session));

1;

2. Session プラグインの設定を行う ( etc/config.pl )

use HTTP::Session;
use HTTP::Session::Store::OnMemory;
use HTTP::Session::State::Cookie;

return +{
    'Plugin::Session' => +{
        store => HTTP::Session::Store::OnMemory->new(),
        state => HTTP::Session::State::Cookie->new()
    }
};

3. 読み書き

コントローラーを跨って使用する必要の無いセッションはパッケージ名等プレフィックスを付けると意図しない参照を防ぎやすい

sub form {
    my ( $self, $c ) = @_;

    # read session
    my $id = $c->session->get( __PACKAGE__ . 'Hamburger_id');

    # write session
    $c->session->set( __PACKAGE__ . 'Hamburger_id', $id);
}