PHPおすすめフレームワーク『Laravel5』入門 Viewの基本
はじめに
現在国内でも人気急上昇中のPHPフレームワーク「Laravel5」を基礎・基本から押さえていく本連載。2回目となる今回は「ビュー(View)」を使っていきたいと思います。
Laravel5における「View」は、「ブレード(Blade)」と呼ばれるテンプレートエンジンがその役割を担っています。テンプレートエンジンというと「Smarty」が有名どころですが、昨今のLaravel人気の高まりと合わせて「Blade」の知名度も上がってきています。それでは早速始めましょう。
Laravel5のWelcomeページの「welcome.blade.php」ファイルを確認する
まずは、Laravelにデフォルトで用意されているWelcomeページをどのように表示しているのかを確認しましょう。
「app > resources > views」というディレクトリがありますね。
その下に
「welcome.blade.php」
というファイルがあるはずです。
これが例えば「http://xxx.com」のようなURLで、Laravelをインストールしたサーバへアクセスした際に表示されるHTMLのテンプレートとなっていることは、ブラウザのソースと「welcome.blade.php」を見比べてみるとすぐわかるでしょう。
では、なぜ「http://xxx.com」でアクセスしたら「welcome.blade.php」のソースが表示されたのでしょうか。
その紐付けはどのようになされたのでしょうか?
この紐付けのことをPHPフレームワークにおいて一般的に「ルーティング」とか「ディスパッチ」などと言います。
この紐付けの定義を行っているのが「routes.php」ファイルになります。「routes.php」は、「app > HTTP」ディレクトリ下にありますので、確認してみましょう。
このような記述があるでしょうか?
Route::get('/', function () { return view('welcome'); });
Laravel5.1の場合は上記のような表記だけですが、Laravel5.2になると以下のような記述も加わっています。
Route::group(['middleware' => ['web']], function () { // });
今回は上の方の記述に着目しましょう。
「/」はドキュメントルート以降のパスを記述する箇所になりますが、今回は「/」のみですのでドキュメントルートを指します。つまり、「http://xxx.com」でアクセスした場合ということです。
その時に「return view(‘welcome’);」、つまり「welcomeというViewを返す」ということになります。
「welcome」は「~.blade.php」というファイルの「~」部分を指すので、「welcome.blade.php」ということになるわけです。
このように、「routes.php」にルートを記載し、それに合ったテンプレートを用意しておくことで、その内容がレスポンスのHTMLになる、ということなのです。PHPフレームワークをもし使用しないとなると、リクエストに応じてどのファイルを読むのかを指定するプログラムを実装しなければなりませんが、フレームワークは既にその処理は実装済みなのです。フレームワークを利用するメリットですね。
Laravel5のView機能を実装する
さて、それでは上記の「welcome.blade.php」の話を応用して、「http://xxx.com/sample1」でアクセスした時に表示できるようにしてみましょう。
まずbladeファイルから作成していきます。
「app > resources > views」ディレクトリに「sample1.blade.php」を作成してみましょう。
中身は通常のHTMLファイルで構いません。以下のような感じでしょうか。
<html> <head> <meta charset="utf-8"> <title>Sample1</title> </head> <body> <h1>Sample1</h1> </body> </html>
bladeが出来上がったらLaravelフレームワークの要でもある「routes.php」を編集していきます。
以下の3行を追加しましょう。
Route::get('/sample', function () { return view('sample1'); });
追加できたら「http://xxx.com/sample1」にアクセスしてみましょう。
作成したsample.blade.phpの内容が表示されればOKです。
まとめ
いかがでしたでしょうか。シンプルでしたが、どのようにページを作成・表示すればよいか分かったかと思います。
Bladeにはif文やfor文といったPHPのロジックを組み込むこともできますが、その記述ルールはBlade特有のものとなりますので、書き方ルールは別途覚えていく必要があります。ただ、PHPのアルゴリズムを理解していればそれほど難しくありませんので、今後試していきましょう。
WEBアプリケーション関連 人気連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載