Blade, Laravel framework'ü için tasarlanmış bir şablon motorudur. Blade, PHP kodunu ve HTML'yi bir arada kullanarak dinamik web sayfaları oluşturmayı kolaylaştırır. Blade, okunabilirliği artırırken, geliştiricilerin kod yazımını hızlandırmasına yardımcı olur. Aşağıda Blade ile ilgili temel kavramlar ve kullanım örnekleri bulunmaktadır.
1. Blade Nedir?
Blade, Laravel ile birlikte gelen bir şablon motorudur. Blade, PHP kodlarını HTML içinde kolay bir şekilde kullanmanıza olanak tanır. Blade dosyaları .blade.php
uzantısına sahiptir ve genellikle resources/views
dizininde bulunur.
2. Blade ile Basit Kullanım
2.1. Blade Dosyası Oluşturma
resources/views
dizininde home.blade.php
adında bir dosya oluşturalım:
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Anasayfa</title> </head> <body> <h1>Hoş Geldiniz!</h1> <p>{{ $message }}</p> </body> </html>
Bu dosya, bir message
değişkenini görüntüleyecektir.
2.2. Kontrolcü Oluşturma
Bir kontrolcü oluşturalım ve görünümü döndürelim:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller {
public
function index(
) {
$message = "Bu, Blade ile oluşturulmuş bir görünüm örneğidir.";
return view('home', ['message' => $message]);
}
}
2.3. Route Tanımlama
Web routes dosyasına (routes/web.php) aşağıdaki satırı ekleyin:
use AppHttpControllersHomeController;
Route::get('/', [HomeController::class, 'index']);
3. Blade Temel Özellikleri
3.1. Değişkenlerin Gösterimi
Blade, PHP değişkenlerini göstermek için süslü parantez ({{ }}
) kullanır. Bu yöntem, otomatik olarak HTML özel karakterlerini kaçırır:
<p>{{ $message }}</p>
Eğer özel karakterleri kaçırmadan göstermek isterseniz, {!! !!}
kullanabilirsiniz:
<p>{!! $rawHtml !!}</p>
3.2. Kontrol Yapıları
Blade, koşullu ifadeleri ve döngüleri kullanmak için kolay sözdizimi sunar:
Koşullu İfadeler:
@if($user) <p>Hoş geldin, {{ $user->name }}</p> @else <p>Misafir olarak giriş yaptınız.</p> @endif
Döngüler:
<ul> @foreach($items as $item) <li>{{ $item }}</li> @endforeach </ul>
4. Blade Direktifleri
Blade, bazı yerleşik direktifler sunar:
- @extends: Bir Blade şablonunu genişletmek için kullanılır.
@extends('layouts.app')
- @section: Bir bölüm tanımlamak için kullanılır.
@section('content') <h1>Başlık</h1> @endsection
- @yield: Bir şablondaki içeriği belirtmek için kullanılır.
<body> @yield('content') </body>
5. Blade Parçaları
Blade ile parçalar (components) oluşturabilirsiniz. Parçalar, tekrar kullanılabilir UI bileşenleri olarak işlev görür.
Parça Oluşturma:
resources/views/components/button.blade.php
:
<button>{{ $slot }}</button>
Parça Kullanma:
<x-button>Click Me</x-button>
6. Blade İle Layout Kullanımı
Blade ile layout kullanarak, uygulamanızda ortak bir şablon oluşturabilirsiniz.
Layout Dosyası:
resources/views/layouts/app.blade.php
:
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>@yield('title')</title> </head> <body> @yield('content') </body> </html>
Kullanım:
@extends('layouts.app') @section('title', 'Anasayfa') @section('content') <h1>Hoş Geldiniz!</h1> @endsection
Sonuç
Blade, Laravel ile geliştirme yaparken kullanışlı ve güçlü bir şablon motorudur. Blade’in sağladığı basit sözdizimi ile dinamik içerikler oluşturabilir, kontrol yapıları kullanabilir ve şablonlarınızı daha düzenli bir şekilde oluşturabilirsiniz. Laravel ile birlikte Blade kullanmak, geliştirme sürecinizi hızlandırır ve kodunuzu daha temiz hale getirir. Daha fazla bilgi için Laravel’in resmi dökümantasyonuna göz atabilirsiniz: Laravel Blade Dökümantasyonu.