Session管理

Catalyst::Plugin::Session::ManagerSledge ライクで一番便利そう。

ただ、Session の保存先は Memcached にしたいので Catalyst::Plugin::Session::Manager::Storage::Memcached とかあると嬉しいなぁと・・・

作って作者様に送ったら迷惑かなぁ・・・
DEBUG もしてないし、適当なんですが、一応、メモ程度に。

package Catalyst::Plugin::Session::Manager::Storage::Memcached;
use strict;
use warnings;

use base qw/Catalyst::Plugin::Session::Manager::Storage/;
use Cache::Memcached;

our $EXPIRES    = 60 * 60;

sub new { 
    my ($class, $config) = @_;
    bless {
        config => $config,
        _data  =>  Cache::Memcached->new({
            servers => $config->{session}{servers} || [],
            debug => 0,
        }),
    }, $class;
}

sub get {
    my ($self, $sid) = @_;
    $self->{_data}->get( $sid );
}

sub set {
    my ($self, $c) = @_;
    my $sid = $c->sessionid or return;
    $self->{_data}->set( $sid, $c->session, $self->config->{session}{expires} );
}

こ・・・こんな感じでどうっすかね?ん〜自信ない。

Catalyst::Plugin::Session::Store::Memcached もあるし、こっち使った方が良いのなかなぁ

その後

Catalyst::Plugin::Session::Manager 作者 id:lyokato 様よりコメントを頂けました。
Catalyst::Plugin::Session::Manager は Catalyst5.3 のための backward compatibility である事。
Catalyst 5.5 以降では、Catalyst::Plugin::Session を使用するのが一般的である事。
を、お教え頂きました。(多謝!!)