1package TestApp::Controller::Action::Inheritance; 2 3use strict; 4use base 'TestApp::Controller::Action'; 5 6sub auto : Private { 7 my ( $self, $c ) = @_; 8 return 1; 9} 10 11sub begin : Private { 12 my ( $self, $c ) = @_; 13 $self->SUPER::begin($c); 14} 15 16sub default : Private { 17 my ( $self, $c ) = @_; 18 $c->forward('TestApp::View::Dump::Request'); 19} 20 21sub end : Private { 22 my ( $self, $c ) = @_; 23} 24 25package TestApp::Controller::Action::Inheritance::A; 26 27use strict; 28use base 'TestApp::Controller::Action'; 29 30sub auto : Private { 31 my ( $self, $c ) = @_; 32 return 1; 33} 34 35sub begin : Private { 36 my ( $self, $c ) = @_; 37 $self->SUPER::begin($c); 38} 39 40sub default : Private { 41 my ( $self, $c ) = @_; 42 $c->forward('TestApp::View::Dump::Request'); 43} 44 45sub end : Private { 46 my ( $self, $c ) = @_; 47} 48 49package TestApp::Controller::Action::Inheritance::A::B; 50 51use strict; 52use base 'TestApp::Controller::Action'; 53 54sub auto : Private { 55 my ( $self, $c ) = @_; 56 return 1; 57} 58 59sub begin : Private { 60 my ( $self, $c ) = @_; 61 $self->SUPER::begin($c); 62} 63 64sub default : Private { 65 my ( $self, $c ) = @_; 66 $c->forward('TestApp::View::Dump::Request'); 67} 68 69sub end : Private { 70 my ( $self, $c ) = @_; 71} 72 73package TestApp::Controller::Action::Inheritance::B; 74 75use strict; 76use base 'TestApp::Controller::Action'; 77 78# check configuration for an inherited action 79__PACKAGE__->config( 80 action => { 81 begin => {} 82 } 83); 84 851; 86 87