しばらくぶりにCatalystを触っていたら、なにやらちょこちょこ変更されつつあるようなので、自作プラグインもちょこちょこ書き換えました。
configに使うキーにモジュール名を使う
Catalyst::Plugin::ConfigLoader - Load config files of various types - metacpan.org
"file" config parameter has been deprecated in favor of "$c->config->{ 'Plugin::ConfigLoader' }->{ file }"
とか言われるようになったので、設定ファイルを書き換えた。
Catalyst::Plugin::ConfigLoaderで環境毎に設定ファイルを用意する - ヒルズで働く@robarioの技ログもちょっと修正した。
自作プラグインの設定も$c->config->{'Plugin::MyPlugin'}以下を見るように書き換えた。
Controller::*,Model::*,View::*は、以前からモジュール名がキーになっていたので、Plugin::*も対象にして行くということなのかな。キーがユニークになるからいいよね。
NEXTの代わりにClass::C3
Catalyst::Manual::ExtendingCatalyst
理由は良く分からんけど、Class::C3に変えた。
use NEXT; sub foo { my $self = shift; my ($bar, $baz) = @_; $self->NEXT::foo(@_); }
を
use Class::C3; sub foo { my $self = shift; my ($bar, $baz) = @_; $self->next::method(@_); }
に修正。
Class::C3を使うと、場合によっては問題になるそうです。→NEXTよりClass::C3のほうが正しいMROになるのはわかるんだが - masaki@catalyst - Catalystグループ
id:ikasam_aさん、いつもありがとうございます!
Catalyst::Plugin::*の代わりにCatalystX::Plugin::*
Catalyst::Manual::ExtendingCatalyst
自作のローカルプラグインの名前空間をCatalystXに変えました。同時に、
MyApp->setup('MyPlugin');
を
MyApp->setup('+CatalystX::Plugin::MyPlugin');
に修正。
こんなところでしょうか。また何かあったらここに追加します。