PHPのtrait

最近PHP5.5を触っています。 5.4からの機能、トレイト。
PHP: トレイト - Manual

今までabstractクラスで実装してた部分を役割分割して実装済みメソッドだけにした、みたいなものかなぁ。
interfaceとセットでtraitを使うとコールする側も保証できてよさそう。
最初からtrait作っていくとただのutil系関数のincludeになりそうなので、
設計や実装の後半で抽象化できそうな共通項部分を抽出してtraitいったらいいかも。

CakePHPだとModelと相性がよさそう。あとControllerも。
ComponentとかBehaviorはそのオブジェクトの生存期間中のコールバックの実装がメインになりそうで、
単純に実装済みメソッドをガッチャンコして足すような用途はあわなそう。
traitについてはそんな感想です。