php の trait と同名の継承・具象クラス・メソッドの優先順位

PHPのtraitについて備忘録。

PHP: Traits - Manual
> An inherited member from a base class is overridden by a member inserted by a Trait. The precedence order is that members from the current class override Trait methods, which in turn override inherited methods.
へー。継承と具象の間に入り込むのはなんとなく気持ち悪いけど、実装の再利用で上書きたい時しかないからこんなものなのかな。

ちなみに、ScalaRubyのmix-inを簡単に調べたところ、入る場所は同じっぽい。
omiend.hatenablog.jp
yamacent.hatenablog.com

うん、でもそうだね、振る舞いに関わるところをtraitに分けてる時点でPHPの場合アウトな気がしてきた。

広告を非表示にする