ビューコンポーザとは
ビューをレンダリングする際に自動的に実行される処理を用意するための部品のこと。
ServiceProviderクラスのbootメソッドだけ覚えとけば、とりあえずニューコンポーザは使用できる。
サービスプロバイダ
サービスプロバイダはServiceProviderクラスを継承して作成される。ビューコンポーザを利用するならサービスプロバイダは重要。
サービスプロバイダの基本形
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\ServiceProvider;
class プロバイダクラス extends ServiceProvider
{
public function boot()
{
//コンポーザの設定(ブートストラップ処理)
}
}
サービスプロバイダ作成方法
ターミナルで作成できます。
php artisan make:provider プロバイダー名
app/providersフォルダのなかにスクリプトが指定したプロバイダー名で自動生成される。
ビューコンポーザの用意
ビューコンポーザの用意方法は2つある。
1.無名クラスでコンポーザ処理
2.bootで設定
1.無名クラスでコンポーザ処理
先ほど作成したサービスプロバイダのboot内に無名クラスでビューコンポーザの処理を組み込む。
ビューコンポーザーを設定するView::composerメソッド
View::composer(ビュー名 , 関数orクラス)
- 第一引数にビューコンポーザを割り当てるビューを指定
- 第二引数に実行する処理
次にサービスプロバイダをアプリケーションに登録する
config/app.phpにあるprovidersという名前の配列が、アプリケーションに登録されているプロバイダ一覧
この配列にプロバイダクラスを追記すればアプリケーション使用時にそれを使用することができる。
App\Providers\HelloService\プロバイダー名::Class
2.bootで設定
コンポーザを作成しHttpフォルダ内に配置。
先ほど作成したサービスプロバイダのboot内のView::composerメソッドの第二引数にコンポーザを設定する。
※ 備忘録目的の記事です