PHP/LaravelでTraitを使用した

こんにちは。新卒2年目エンジニアの遠藤です。

今回はTraitを使用したのでその使用方法を例とともに紹介させていただきます。

Traitとは

  • PHP5.4以降で導入されたコードを再利用するための仕組み。
  • いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用可能。
  • いくつかの機能をまとめるためのものであり、インスタンスを作成することはできない。

実際に使用した例

Traitの使用用途はいくつかありますが、今回は以下の2つの理由で使用しました。

  • 機能をいくつかのクラスで使い回したかった。
  • 機能をグルーピングして見やすくしたかった。

Mail.php

メール機能をTraitにグルーピングしてまとめました。

firstController.php

最初にuseを使用してTraitを呼び出しておけば、任意の箇所で$this->とすれば、Trait内のメソッドが使えるようになります。

secondController.php

別のクラスでも使用できました。どちらもControllerを継承しているからControllerに書いておけばと思いがちですが、Traitを使用することで機能のまとまりがわかりやすくなり、Controllerが複雑になるのも避けることができます。

異なる独立したクラス階層での使用

最後に異なるクラス階層での使用ができるとのことなので記載します。

以下のfirstControllerとsecondControllerのように継承元が異なる2つのクラスが存在する場合は、どちらもControllerから継承するような場合と違い、継承元に書いておけば使い回せるというのが通用しません。

ここで、Traitにまとめておくとuseで呼び出すだけで使えます。単一継承言語におけるコードの再利用問題を解決してくれるという感じです。

firstController

secondController

 



❏❏ TOPIC ❏❏ ------------------------------------------------------------

カスタム自由!フリーECサイトパッケージ
チャットボット導入サービス
WEBシステム開発・スマホアプリ開発はSRIAへ