ほえ?なんで?

http://blog.hide-k.net/archives/2007/12/catalystnext.php
使う側としては継承順に呼ばれることを期待しているのに、思ったとおりに動かない。
つまり、使う側がプラグインの中身の挙動まで気を使わなければいけない。
これはClass::C3になっても同じ。

「正しい」継承順にメソッド呼ぶのはClass::C3の特徴だからメソッドの呼び出し順に変化はないでしょう。NEXTの場合は親クラスが小クラスより先に呼ばれる事もあるから気持ち悪いけど。

そもそもメソッドの中で親クラスのメソッドを呼ぶタイミングがその他のロジックの前か後かはこのエントリに書いてある継承順云々とはまた違う気がする。書いてあるコードを見ても、それは普通のOOってそういうもんなんじゃないの、としか言いようがないんだが。

なんか気持ち悪いというからには他の理由があるんじゃないだろうか。


追記

http://b.hatena.ne.jp/miyagawa/#bookmark-6914324
継承とは関係なくて、フックポイントの順序をプラグイン側できめるというCatalystの仕様に問題があるとおもう
ああ、つまり$c->NEXT::execute()とかが走るタイミングほげほげという事かな。それなら分かるかも。本来ならメソッドディスパッチ内で行う事は普通の継承範囲内で行って、Pluginは$c->run_hookみたいな形で一気に動かせばええんだろうな。