View Composerという機能
Laravelには、View Composerという機能があります。
便利なのですが、いつ使ったらいいかな?っていう記事がなかなか見つからず、
PHPユーザーズの方々に教えてもらって、何となく自分なりに理解したことをφ(・・
View Composerとは
Viewをレンダリングするにあたって、変数などの値の取得ロジックを、
ControllerではなくView Composerが扱い、各Blade単位とかで切り分けることが出来ます。
'xxx.blade.php'には、'xxxViewComposer'のロジックを使う。
って出来ます。
何が嬉しい?
共通のパーツを扱うにあたって、Bladeは共通、取得ロジックも一緒なのに、
リソースの取得をバラバラのControllerから、別々に呼び出すとか、コピペするとかナンセンスですよねφ(・・
Viewに対して、取得ロジックをViewComposerで紐付けることで、View呼び出しさえすれば取得ロジックを意識せずにViewを作る事ができます。
いつ使う?
コードの書き方は公式を参照。
Viewをコンポーネント単位で切り分ける時に、使うと良さそうです。
パーツを記述したら、使う側は意識せずに追加パーツが使えるといった感じ。
いつ使わないほうがいい?
取得ロジックが複雑になるとき。
ユーザーの入力によって動作が分岐する時とかは素直にControllerに記述するほうが良さそう。
その時には、ロジックを別なクラスに記述して、Controllerに注入するのが良い。(Serviceクラスとか作る)