Bladeとは?

Blade(ブレード)とはLaravelに付属しているテンプレートエンジンです。

このBladeと言うのがもうすごいんです。

BladeはViewにあたるものです。

つまりこのBladeファイルにHTMLを記述していきます。

ちょっとBladeを見てみる

前回Laravelの最初のページを見ることに成功しました。

あのページもBladeで作られています。

あのページのBladeファイルを見て見ましょう。

場所はresource/viewsの中にwelcome.blade.phpと言うファイルがあります。

テキストエディタで開いて見てください。

ちょっと長いですが、コードも載せておきます。

まずファイル名に注目してください。

拡張子が、.blade.phpになっています。

phpがついていますが、<?php ?>は使えません。

さらによく見て見ると2行目の<html>{{app()->getLocale()}}と書かれています。

この{{ }}に囲まれている部分はデータ(変数や関数の呼び出しや演算)を記述することでその結果が入ります。

先ほどのapp()->getLocale()は言語を取得する関数のようです。

さらに見て見ると69行目に@if(Route::has('login'))と書かれています。

これはもう御察しの通り、if文です。

この@から始まる構文をディレクティブと言います。

先ほどの@ifはifディレクティブなんて呼んだりします。

このifディレクティブは以下のように記述します。

条件式はPHPの構文で書けます。

ディレクティブの後の(式)は全部PHPで書けます。

例えば成人なら「あなたは成人です」成人じゃないなら「成人まであとx歳です」を表示するbladeを記述すると、

さて今度はelseディレクティブが出てきました。

もう説明はいらないと思いますが、elseディレクティブはifディレクティブの条件に合わない時に実行されるものです。

ただifディレクティブの中でelseディレクティブを使用するのでendifディレクティブを使用する事に気を付けてください。

他にも沢山ディレクティブは用意されていますが、ここではこの辺にしておきます。

また、機会があったら詳しく説明します。

ちょっといじって見る

ではこのwelcome.blade.phpをいじって見ましょう。

こんな風にして見ました。

表示すると、

ちゃんと計算も出来てますし、返り値も出力されています。

次にわざとエラーを出して見ましょう。

表示すると、

あれ・・・いつものPHPのエラーと違う・・・

そうなんです。LaravelではPHPのエラーがすごく見やすく表示されます。

しかも、StackoverflowやGoogle等でエラーが調べれるボタンも付いています。

Laravelはエラー表示も充実していますね。

次に{{}}でHTMLを出力して見ます。

表示して見ると、

ありゃりゃ・・・そのまま表示されています。

どうやらサニタイズされているようです。

サニタイズせずにHTMLを出力する場合は{!! "html" !!}のようにします。

では直して見ましょう。

表示すると、

ちゃんとHTMLで出力されています。

この章のまとめ

Bladeは結構便利なテンプレートエンジン。