エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】View Composerの使い所【805日目】

View Composerという機能

Laravelには、View Composerという機能があります。

readouble.com

便利なのですが、いつ使ったらいいかな?っていう記事がなかなか見つからず、
PHPユーザーズの方々に教えてもらって、何となく自分なりに理解したことをφ(・

View Composerとは

Viewをレンダリングするにあたって、変数などの値の取得ロジックを、
ControllerではなくView Composerが扱い、各Blade単位とかで切り分けることが出来ます。

'xxx.blade.php'には、'xxxViewComposer'のロジックを使う。

って出来ます。

何が嬉しい?

共通のパーツを扱うにあたって、Bladeは共通、取得ロジックも一緒なのに、
リソースの取得をバラバラのControllerから、別々に呼び出すとか、コピペするとかナンセンスですよねφ(・

Viewに対して、取得ロジックをViewComposerで紐付けることで、View呼び出しさえすれば取得ロジックを意識せずにViewを作る事ができます。

いつ使う?

コードの書き方は公式を参照。

Viewをコンポーネント単位で切り分ける時に、使うと良さそうです。
パーツを記述したら、使う側は意識せずに追加パーツが使えるといった感じ。

いつ使わないほうがいい?

取得ロジックが複雑になるとき。
ユーザーの入力によって動作が分岐する時とかは素直にControllerに記述するほうが良さそう。

その時には、ロジックを別なクラスに記述して、Controllerに注入するのが良い。(Serviceクラスとか作る)