DefaultEndの継承順とend系プラグインの実装方法

Catalystには色んな沢山のプラグインがあって継承順が重要になってくるのも結構あるんだけどただひとつ言える事はDefaultEndは常に最後に継承しておくと幸せになれそうってこった。

 use Catalyst qw/
     -Debug
        :
        :
        :
     DefaultEnd
 /; 

そしてendでごにょごにょ処理する系のプラグインを作る場合は$self->NEXT::end($c);してから処理するようにしておくと幸せになれそうってこった。

 package Catalyst::Plugin::MyApp::Hoge;
 use strict;
 use warnings;
 use base qw/Catalyst::Base/;
 
 sub end : Private {
     my ( $self , $c ) = @_;
     $self->NEXT::end($c);
     
     # 処理処理
     
 }

NEXT::endしてから処理するようにすればDefaultEndが先に走ってくれる。だから便利。