Controller で context get!
以前、Catalyst::Component::ACCEPT_CONTEXT をコントローラで継承すれば $c が取れるといったんだけど、
複数のコントローラを継承すると取れなくなるな。orz...
試したスクリプト。 :-)
package Nyan::BaseController::A; use base qw(Catalyst::Controller Catalyst::Component::ACCEPT_CONTEXT); sub a { my $s = shift; my $c = $s->context(); use Data::Dumper; warn Dumper $c; } 1;
package Nyan::BaseController::B; use base qw(Catalyst::Controller Catalyst::Component::ACCEPT_CONTEXT); sub b { my $s = shift; my $c = $s->context(); use Data::Dumper; warn Dumper $c; } 1;
package Nyan::Controller::Root; use strict; use warnings; use base qw/Nyan::BaseController::A Nyan::BaseController::B/; __PACKAGE__->config->{namespace} = ''; sub default : Private { my ( $self, $c ) = @_; $self->a(); $self->b(); # Hello World $c->response->body( $c->welcome_message ); } sub end : ActionClass('RenderView') {} 1;
$VAR1 = undef; $VAR1 = undef; [info] *** Request 1 (0.077/s) [254] [Thu Apr 12 00:38:42 2007] *** [debug] "GET" request for "/" from "192.168.24.52" [info] Request took 0.011428s (87.504/s) .----------------------------------------------------------------+-----------. | Action | Time | +----------------------------------------------------------------+-----------+ | /default | 0.001309s | | /end | 0.000158s | '----------------------------------------------------------------+-----------'