Laravel
で

あまり知られていないViewComposer
@mziyut
水井 悠太
自己紹介
自己紹介
• 水井 悠太 (@mziyut)
• エンジニア
• PHPerを名乗っていながら

最近は、Rubyばかり書いてます。
Laravelとは
Laravel とは
Laravelとは
https://laravel.com/



Laravelとは
https://laravel.com/



説明しません 🤗
お話する内容
Laravelでアプリケーションを作っている際に、

このテンプレート読み込まれたら

「〇〇」とった処理をしたい🤔



というちょっとした

要求を簡単に解決する方法です
解決する方法
Laravelに存在する ServiceProvider を用い

View(Blade)が、読み込まれたことを検知
↓
Viewがrenderされる際に処理を挟み込む
ViewComposer

を作成しよう
ViewComposer

を作成しよう
php artisan make:provider ViewComposeProvider
ViewComposer

を作成しよう
ViewComposer

を作成しよう
テンプレートが呼び出される場合の

処理を記述しましょう
$ mkdir app/Http/ViewComposer

$ {editor} app/Http/ViewComposer/
SampleViewComposer.php
ViewComposer

を作成しよう
ViewComposer

を作成しよう
テンプレート名と先程の処理を紐づけましょう
ViewComposer

を作成しよう
ViewComposer

を作成しよう
config/app.php 

にServiceProviderを登録しましょう
ViewComposer

を作成しよう
ViewComposer

を作成しよう
先程指定した、テンプレートパスで定義した処理が

走っていればOK 👌
注意⚠
注意⚠
テンプレートパスを * で指定できる
↓
テンプレート数が多くなると、

処理に時間がかかってしまう 😭
注意⚠
まとめ
まとめ
このテンプレート読み込むから、

この処理を読み込んで、、、等

といったことをする必要ありません🎉
まとめ
ただし、処理が追いづらくなるので
何でもかんでも、ViewComposerで

定義するのはやめましょう😇
ありがとうございました

第5回名古屋若手Webエンジニア交流会