はじめに この記事は、PHP Advent Calender 2019 の17日目の記事です。 みなさん、Trait使っていますか? 社内でTraitの使い所がいまいち分からないんだよね〜という話が出ていたので、Traitの使われかたを分類し、Laravelの実際のコードを例として理解を深めていけたらと思います。 Traitとは そもそもTraitってどんな機能でしょうか? PHP 5.4.0 以降では、コードを再利用するための「トレイト」という仕組みが導入されました。 トレイトは、PHP のような単一継承言語でコードを再利用するための仕組みのひとつです。 トレイトは、単一継承の制約を減らすために作られたもので、 いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用できるようにします。 トレイトとクラスを組み合わせた構文は複雑さを軽減させてくれ、 多重継承や Mixin に関