生涯未熟

生涯未熟

プログラミングをちょこちょこと。

複数のmodelに共通の処理を持たせる方法

またまたLaravel関連です。

今回やりたかったことは以下の様な感じです。

f:id:syossan:20140905122844p:plain



間違った実装例

いきなり間違ったとこから入りますが、最初以下の様なコードを書きました。

common


gist2c509bc70c5d4b75a389



commonモデルをextendsして各モデルがextendsした共通処理を実行すりゃいーじゃん!ってのを
最初考えていました。



イケてる実装例


そんな中、Laravel答えるマンさんからこんな返答が。


す、素晴らしい!
言われるまでtraitの存在がすっぽり頭から抜けてましたw


ってなわけで以下がアドバイスに則った実装例です。

common


gist3dfdbd2c0369ffe63142



これで出来ました!
こっちの方がもextends元のcommonクラスに依存しないので、イケてる実装ですね!
trait便利!