これは、asumikam #phpcon_odawara Advent Calendar 2025の3日目の記事です🎄
スライド
感想

このセッションは前半に「トレイトについて知ろう」というセクションでトレイトの概念を説明し、後半で「OSSライブラリでの使われ方」「トレイトのテストの書き方」として実際に使う部分でどう採用・運用していくのか、という構成で話してくれています。
前半の「トレイトについて知ろう」については「釣竿」という例を使ってめちゃくちゃ秀逸に「トレイトとは何か」というのを話してくれていました。 いや本当に面白くて、セッションを見ながら「おもしれえ〜〜」と叫んでしまいました。

「身の回りにあるもので説明する系」の中でも、トップクラスにしっくりきた例えだと思います。 トレイトの話をしつつ、DIとの違いにも触れてくれていたので、そこで “何がどう違うのか” を同時に理解できたのもお得ポイント。
自分の中でも、トレイトは「そこまで重要じゃない部品だけど、一度使うと剥がすのが難しい」というイメージがあったのですが、この説明を聞いてよりその認識が強まりました。
後半ではより地に足のついた部分の話となっていました。 スライドにも出ていましたが、こちらの記事も合わせて読むとさらに理解が進みます。
特にお気に入りだったのは「トレイトのテストの書き方」で話していた「トレイトをuseしたクラスをそのままテストする」というアプローチです。 自分もトレイトをトレイトとして見ずに振る舞いとしてテスト書くだろうな〜と思ったのでmeiheiさんの流派と同じだな〜と勝手に親近感を覚えました。
traitというソリューションを知らないと、「間違った継承」を使ったりして無理やり共通化してしまいそうだな、という気持ちになりました(経験則)。 まあ、それでも、より良いソリューションはDIという方がありそうですが。
そしてさらに、meiheiさんはトレイトをどんな場面で使っていたのかな〜とかも気になったので、次会った時に聞いてみようと思います。
自分の中の「トレイト観」は、上記のセッションでほぼ形作られたと言っても過言ではないのですが(meiheiさんも触れていたスライドです)、これから学ぶ人には、「改めて学ぶ Trait の使い方」→「導⼊から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について」の順番でみれば良いよ、というおすすめになりそうです。
meiheiさんの作るスライドはめちゃくちゃ「meihei Worldみ」があって、今回もそれが光っている発表と感じました。 発表ありがとうございました!
ぷろも〜しょん
PHPカンファレンス小田原2026のトークを募集しています! 2025/12/19 23:59:59 までです。投稿お待ちしてます。
そしてなんと!昨日に引き続き、PHPerKaigiのトーク募集もプロモーションです! まだアディショナルタイムやっていそう!!!間に合うぞ!!! 自分の学びをパッケージ化してCfP出すだけでもかなりの価値があると思うのでぜひやっていきましょう💪