Laravel, popüler bir PHP web uygulama geliştirme çerçevesidir ve güçlü bir şablon motoru olan Blade’i içerir. Blade, Laravel uygulamalarında dinamik HTML içeriklerini oluşturmak için kullanılan esnek ve kullanıcı dostu bir şablon motorudur. Laravel’de View kullanımı, web uygulamalarınızı daha organize, sürdürülebilir ve güvenli hale getirmenize yardımcı olabilir.
View dosyasını oluşturma
Laravel’de View dosyası oluşturmak için
resources/views
anasayfa.blade.php
klasörüne yeni bir dosya ekleyebilirsiniz. Örneğin, adında bir View dosyası oluşturmak için aşağıdaki gibi bir komut kullanabilirsiniz.
touch resources/views/anasayfa.blade.php
View dosyanızı oluşturduktan sonra, içeriğini Blade şablon sözdizimi kullanarak düzenleyebilirsiniz. Blade, standart PHP kodunu içeren bir şablon motorudur ve daha zengin ve kullanıcı dostu bir sözdizimine sahiptir.
View’i yönetme
Oluşturulan View dosyasını Laravel uygulamanızda kullanmak için Controller (Denetleyici) sınıfı içinden veya route (yol) tanımlamalarında View’i döndürebilirsiniz. Örneğin, aşağıdaki gibi bir Controller metodu kullanarak anasayfa.blade.php View dosyasını döndürebilirsiniz.
public function anasayfa() { return view('anasayfa'); }
Yukarıdaki kod, anasayfa.blade.php View dosyasını döndürerek, kullanıcının tarayıcısına gönderilecek HTML içeriğini oluşturur.
Blade Şablonlarının Temel Kullanımı
Blade, kullanımı kolay bir şablon motorudur ve Laravel View’lerinde kullanılan sözdizimi sayesinde web sayfalarınızı oluşturmayı daha hızlı ve daha kolay hale getirir. İşte Blade şablonlarının temel kullanımına ilişkin bazı örnekler:
- Değişkenler: Blade, değişkenleri süslü parantez
{}
içinde kullanarak View dosyalarında kullanmanıza izin verir.
<h1>Merhaba, {{ $isim }}</h1>
Yukarıdaki kodda,
$isim
değişkeni View dosyasında kullanılarak dinamik bir içerik oluşturulmuştur.
- Koşullu İfadeler: Blade,
@if
,@elseif
ve@else
gibi koşullu ifadeler kullanarak, farklı koşullara göre içeriği değiştirmenize olanak tanır.
@if($kullanici->admin) <p>Yönetici kullanıcı</p> @else <p>Standart kullanıcı</p> @endif
Döngüler: Blade, @foreach
, @for
ve @while
gibi döngüler kullanarak, bir dizi veya koleksiyon üzerinde döngü yapmanıza olanak tanır.
@foreach($kullanicilar as $kullanici) <p>{{ $kullanici->isim }}</p> @endforeach
Blade Şablonlarının Gelişmiş Kullanımı
Blade, gelişmiş kullanım seçenekleri sunar ve Laravel View’lerinde daha karmaşık yapılar oluşturmanıza olanak tanır. İşte Blade şablonlarının gelişmiş kullanımına ilişkin bazı örnekler:
- Şablona Miras Alma ve Bölüm Kullanma: Blade, şablona miras alma ve bölüm kullanma özelliklerine sahiptir. Şablona miras alma, temel bir şablonun oluşturulup diğer şablonların bu temel şablona miras alması işlemini ifade eder. Böylece, ortak bir şablonunuz varsa ve farklı View dosyalarınızın aynı temel şablona sahip olmasını istiyorsanız, miras alma kullanabilirsiniz.
- Master (Ana) Şablon (master.blade.php)
<!DOCTYPE html> <html> <head> <title>@yield('baslik')</title> </head> <body> <header> <!-- Header içeriği --> </header> <main> @yield('icerik') </main> <footer> <!-- Footer içeriği --> </footer> </body> </html>
- Alt Şablon (anasayfa.blade.php)
@extends('master') @section('baslik', 'Anasayfa') @section('icerik') <h1>Merhaba, Dünya!</h1> <p>Bu, anasayfa içeriğidir.</p> @endsection
Yukarıdaki örnekte, master.blade.php adlı bir temel şablon oluşturulmuş ve
anasayfa.blade.php adlı bir alt şablon bu temel şablona miras almıştır. Alt şablon,
@extends
ve @section
direktifleri kullanılarak temel şablonun belirli bölümlerini (@yield) doldurmuştur.
- Şablon Bölümleri: Blade, View dosyalarında tekrar eden bölümleri ayırmanıza ve bunları ayrı dosyalarda tutmanıza olanak tanır. Bu sayede, ortak bileşenlerinizi ayrı dosyalarda tutarak kod tekrarını azaltabilir ve daha düzenli bir yapı elde edebilirsiniz.
Header Bölümü (header.blade.php)
<header> <!-- Header içeriği --> </header>
Footer Bölümü (footer.blade.php)
<footer> <!-- Footer içeriği --> </footer>
Master (Ana) Şablon (master.blade.php)
<!DOCTYPE html> <html> <head> <title>@yield('baslik')</title> </head> <body> @include('header') <main> @yield('icerik') </main> @include('footer') </body> </html>
Yukarıdaki örnekte, header.blade.php
ve footer.blade.php
adlı iki ayrı bölüm dosyası oluşturulmuş ve master.blade.php adlı temel şablon, bu bölümleri
@include
direktifi ile dahil ederek kullanmıştır.
Route tanımı (routes/web.php)
Route::get('/anasayfa', 'AnasayfaController@index')->name('anasayfa');
Link Oluşturma (anasayfa.blade.php)
<a href="{{ route('anasayfa') }}">Anasayfa</a>
Yukarıdaki örnekte, route()
fonksiyonu kullanılarak anasayfa
adlı bir URL oluşturulmuş ve bu URL, AnasayfaController@index metotunu çağıran bir bağlantıya dönüştürülmüştür.
- Formlar: Blade, form oluşturma işlemini kolaylaştırır ve otomatik olarak CSRF koruması ekler. Formlarda kullanılan tüm HTML etiketleri, direktifler ve hataları kolayca yönetmenize olanak tanır.
<form action="/kaydet" method="post"> @csrf <input type="text" name="ad" value="{{ old('ad') }}"> <input type="text" name="soyad" value="{{ old('soyad') }}"> <button type="submit">Kaydet</button> </form>
Yukarıdaki örnekte, @csrf direktifi kullanılarak CSRF koruması eklenmiş ve
old() fonksiyonu kullanılarak form hatalarından sonra kullanıcının girdiği verilerin tekrar doldurulması sağlanmıştır.
Sonuç olarak, Laravel’in güçlü ve esnek Blade görüntüleme motoru, web uygulamaları geliştirmek için kullanışlı bir araçtır. Blade, PHP kodunu temiz ve okunabilir bir şekilde yazmanıza olanak tanırken, dinamik içerik oluşturmak, şartlı ifadeler ve döngüler kullanmak, form oluşturmak ve dil desteği eklemek gibi yaygın web geliştirme görevlerini kolaylaştırır. Laravel belgelerinde daha fazla bilgi bulabilir ve Blade’i etkili bir şekilde kullanarak güçlü ve dinamik web uygulamaları oluşturabilirsiniz.