アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

LaravelのBladeテンプレートの基本:効率的なビュー開発の第一歩

Featured image of the post

PHPフレームワークの中でも高い人気を誇る「Laravel」。その中核を担う機能のひとつが、テンプレートエンジンである「Blade(ブレード)」です。

Bladeを使うことで、HTMLにPHPを組み込んだ従来の書き方よりも、可読性・保守性に優れたビュー開発が可能になります。

この記事では、Laravel初心者にもわかりやすく、Bladeテンプレートの基本を解説します。


[目次を開く]

Bladeテンプレートとは?

Bladeは、Laravelに標準搭載されている軽量かつパワフルなテンプレートエンジンです。

HTMLに直接PHPを書くのではなく、Blade独自のディレクティブ(命令)構文を使うことで、見やすく効率的な記述が可能です。

例えば以下のように、{{ }}で変数を出力し、@if@foreach で制御構文を記述できます。

<h1>こんにちは、{{ $name }}さん</h1>

@if($isAdmin)
  <p>管理者ページへようこそ!</p>
@endif

Bladeテンプレートの基本構文

1. 変数の出力

Bladeでは、{{ $変数名 }} の形式で変数を簡単に表示できます。

HTMLエスケープも自動で行ってくれるため、セキュリティ面でも安心です。

<p>{{ $user->name }}</p>

エスケープしない生のHTMLを表示したい場合は、以下のように記述します。

{!! $content !!}

2. 条件分岐

@if, @elseif, @else, @endif を使って、テンプレート内で条件分岐ができます。

@if($user->isAdmin())
  <p>管理者です</p>
@else
  <p>一般ユーザーです</p>
@endif

3. ループ処理

@foreach, @for, @while などのディレクティブを使って繰り返し処理も可能です。

<ul>
  @foreach($items as $item)
    <li>{{ $item }}</li>
  @endforeach
</ul>

4. テンプレートの継承

Bladeの強力な機能のひとつが「レイアウトの継承」です。

共通レイアウト(layouts/app.blade.php など)を作成し、各ページでそれを継承することで、DRY(Don't Repeat Yourself)な開発が可能になります。

共通レイアウト:
<!-- layouts/app.blade.php -->
<html>
<head>
  <title>@yield('title')</title>
</head>
<body>
  @yield('content')
</body>
</html>
子テンプレート:
<!-- views/home.blade.php -->
@extends('layouts.app')

@section('title', 'ホーム')

@section('content')
  <h1>ようこそホームページへ!</h1>
@endsection

その他便利な機能

  • @include:部分テンプレートの読み込み
  • @csrf:CSRFトークンの埋め込み
  • @auth / @guest:ログイン状態に応じた表示制御
  • コンポーネント:再利用可能なUI部品をBladeで構築可能

まとめ

BladeはLaravelのビュー開発を強力にサポートしてくれるテンプレートエンジンです。

可読性に優れ、保守性も高いため、チーム開発や中規模以上のWebアプリケーションにおいては特に効果を発揮します。

今後のLaravel開発では、Bladeの理解が生産性を大きく左右します。まずは基本の構文をマスターし、少しずつ応用的な使い方にもチャレンジしてみてください。

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会