Catalyst::Component::ACCEPT_CONTEXT

Catalyst::Component::ACCEPT_CONTEXT

これで、$cにアクセスできるなぁ。でも、model , view でってかいてあるなぁ。controllerもこれでいけるなぁ。他にいい方法があるのかなぁ。

例:

package CatalystX::Controller::FormValidator;

use strict;
use warnings;
use base qw(Catalyst::Controller Catalyst::Component::ACCEPT_CONTEXT);
use Data::FormValidator;
our $VERSION = "0.01";

sub form {
    my $s       = shift;
    my $c = $s->context;

    if ( $_[0] ) {
        my $form = $_[1] ? {@_} : $_[0];
        $s->{form} = Data::FormValidator->check( $c->request->parameters , $form );
    }

    return $s->{form};
}
1;